avoid_redundant_argument_values
冗長な引数の値を避けます。
このルールは Dart 2.8 以降で利用可能です。
このルールには、クイックフィックスが利用可能です。
詳細
#避けるべきこと:対応するパラメーターのデフォルト値と一致する引数を渡す。
メソッドのオーバーライドによってパラメーターのデフォルト値が変更される可能性があるため、引数が一方のデフォルト値と等しくても、もう一方のデフォルト値と等しくない場合があります。たとえば、A
と B
の2つのクラスがあり、B
が A
のサブクラスで、B
が A
で宣言されたメソッドをオーバーライドし、そのメソッドに A
の宣言では1つのデフォルト値を持つパラメーターがあり、B
の宣言では異なるデフォルト値を持つ場合を考えます。呼び出されたメソッドのターゲットの静的型が B
で、B
のデフォルト値が引数と一致する場合、引数は省略できます(また、引数の値が異なる場合、lint は報告されません)。ただし、呼び出されたメソッドのターゲットの静的型が A
の場合、lint が報告される可能性がありますが、どのメソッドが呼び出されるかを静的に知ることはできないため、報告された lint が誤検出である可能性があります。このようなケースは、// ignore: avoid_redundant_argument_values
のようなコメントでインラインで無視できます。
悪い例
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: true);
}
良い例
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: false);
f();
}
使用法
#avoid_redundant_argument_values
ルールを有効にするには、analysis_options.yaml
ファイルの linter > rules の下に avoid_redundant_argument_values
を追加します。
linter:
rules:
- avoid_redundant_argument_values
特に明記されていない限り、このサイトのドキュメントは Dart 3.5.3 を反映しています。ページの最終更新日は 2024-07-03 です。 ソースを表示 または 問題を報告。