跳到主要內容

avoid_redundant_argument_values

穩定
修復可用

避免冗餘的引數值。

詳情

#

不要傳遞與對應引數的預設值匹配的引數。

請注意,方法覆蓋可以更改引數的預設值,因此引數可能與一個預設值相等,但不與另一個相等。例如,有兩個類 AB,其中 BA 的子類,並且 B 覆蓋了在 A 中宣告的方法,該方法在 A 的宣告中有一個預設值,而在 B 的宣告中有另一個不同的預設值。如果呼叫方法的目標的靜態型別是 B,並且 B 的預設值與引數匹配,則可以省略該引數(如果引數值不同,則不會報告 lint)。但是,如果呼叫方法的目標的靜態型別是 A,則可能會報告 lint,但我們無法靜態地知道呼叫了哪個方法,因此報告的 lint 可能是誤報。可以在行內使用註釋 // 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 規則,請在 linter > rules 下新增 avoid_redundant_argument_values: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_redundant_argument_values: true