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 > rulesの下にunnecessary_overrides: trueを追加してください。
analysis_options.yaml
yaml
linter:
rules:
unnecessary_overrides: true