内容

隐式_重新打开

不要隐式重新打开类。

此规则目前处于**实验性**阶段,自 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