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 map 語法來設定 linter 規則,請在 linter > rules 下新增 implicit_reopen: true
analysis_options.yaml
yaml
linter:
rules:
implicit_reopen: true
除非另有說明,否則本網站上的文件反映的是 Dart 3.7.1。頁面最後更新於 2025-03-07。 檢視原始碼 或 回報問題。