implicit_reopen
不要隱式地重新開放類。
詳情
#透過在類上使用 interface、base、final 或 sealed 修飾符,或者在 Mixin 上使用 base 修飾符,作者可以控制這些類和 Mixin 是否允許在其定義的庫外部被實現 (implement)、擴充套件 (extend) 和/或混入 (mix in)。在某些情況下,作者可能會不小心放鬆這些控制,從而隱式地“重新開放”類。(Mixin 不會發生類似的重新開放情況。)
此 Linter 規則旨在防止意外重新開放類,要求使用 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 map 語法配置 Linter 規則,請在 linter > rules 下新增 implicit_reopen: true
analysis_options.yaml
yaml
linter:
rules:
implicit_reopen: true