unnecessary_overrides
不要覆蓋方法來呼叫具有相同引數的超類方法。
詳情
#不要覆蓋方法來呼叫具有相同引數的超類方法。
差
dart
class A extends B {
@override
void foo() {
super.foo();
}
}好
dart
class A extends B {
@override
void foo() {
doSomethingElse();
}
}在以下情況下,覆蓋成員是有效的:
- 如果型別(返回型別或引數型別)與超類成員不完全相同,
- 如果為其中一個引數添加了
covariant關鍵字, - 如果成員上存在文件註釋,
- 如果成員具有除
@override之外的註解, - 如果成員沒有用
@protected註解,而超類成員有。
noSuchMethod 是一個特殊方法,不受此規則檢查。
啟用
#要啟用 unnecessary_overrides 規則,請在你的 analysis_options.yaml 檔案中的 linter > rules 下新增 unnecessary_overrides
analysis_options.yaml
yaml
linter:
rules:
- unnecessary_overrides如果你使用的是 YAML 對映語法來配置 linter 規則,請在 linter > rules 下新增 unnecessary_overrides: true
analysis_options.yaml
yaml
linter:
rules:
unnecessary_overrides: true