跳到主要內容

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