目录

implicit_reopen

不要隐式重新打开类。

此规则目前是实验性的,可从 Dart 3.0 开始使用。

此规则提供快速修复

详细信息

#

通过在类上使用 interfacebasefinalsealed 修饰符,或者在混入上使用 base 修饰符,作者可以控制类和混入是否允许在其定义库之外被实现、扩展和/或混入。在某些情况下,作者可能会无意中放松这些控制,并隐式地“重新打开”一个类。(混入不会发生类似的重新打开。)

此 lint 通过要求使用 package:meta 中的 @reopen 注解来显式声明这种情况,从而防止无意中重新打开类。

错误示例

dart
interface class I {}

class C extends I {} // LINT

正确示例

dart
interface class I {}

final class C extends I {}
dart
import 'package:meta/meta.dart';

interface class I {}

@reopen
class C extends I {}

用法

#

要启用 implicit_reopen 规则,请在 analysis_options.yaml 文件中的 linter > rules 下添加 implicit_reopen

analysis_options.yaml
yaml
linter:
  rules:
    - implicit_reopen