メインコンテンツにスキップ

avoid_redundant_argument_values

安定版
修正が利用可能です

冗長な引数値は避けてください。

詳細

#

「しない」でください。対応するパラメータのデフォルト値と一致する引数を渡さないでください。

メソッドのオーバーライドはパラメータのデフォルト値を変更する可能性があるため、引数が一方のデフォルト値と一致し、もう一方と一致しない場合があることに注意してください。たとえば、BA のサブクラスであり、BA で宣言されたメソッドをオーバーライドし、そのメソッドに A の宣言で 1 つのデフォルト値を持つパラメータと B の宣言で異なるデフォルト値を持つパラメータがあるとします。呼び出されたメソッドのターゲットの静的型が B で、B のデフォルト値が引数と一致する場合、引数を省略できます(引数値が異なる場合、リンティングは報告されません)。しかし、呼び出されたメソッドのターゲットの静的型が A の場合、リンティングが報告される可能性がありますが、静的にどのメソッドが呼び出されるかを知ることができないため、報告されるリンティングは誤検出である可能性があります。このような場合は、// ignore: avoid_redundant_argument_values のようなコメントでインラインで無視できます。

悪い例

dart
void f({bool valWithDefault = true, bool? val}) {
  ...
}

void main() {
  f(valWithDefault: true);
}

良い例

dart
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 を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_redundant_argument_values

代わりにリンター ルールを構成するために YAML マップ構文を使用している場合は、linter > rules の下に avoid_redundant_argument_values: true を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    avoid_redundant_argument_values: true