implicit_reopen
不要隐式地重新开放类。
详情
#通过在类上使用 interface
、base
、final
或 sealed
修饰符,或者在 mixin 上使用 base
修饰符,作者可以控制类和 mixin 是否允许从定义它们的库外部被实现、扩展和/或混入。在某些情况下,作者可能会不经意间放松这些控制,并隐式地“重新开放”一个类。(mixin 不会出现类似的重新开放。)
此 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
如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 implicit_reopen: true
analysis_options.yaml
yaml
linter:
rules:
implicit_reopen: true
除非另有说明,否则本网站上的文档反映的是 Dart 3.7.1 版本。页面上次更新于 2025-03-07。 查看源代码 或 报告问题。