跳至主要內容

avoid_redundant_argument_values

穩定
可修正

避免多餘的參數值。

詳細資訊

#

請「勿」傳遞與對應參數預設值相同的參數。

請注意,方法覆寫可能會變更參數的預設值,因此參數可能會等於其中一個預設值,但與另一個預設值不同。例如,假設有兩個類別 `A` 和 `B`,其中 `B` 是 `A` 的子類別,且 `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 map 語法來設定 linter 規則,請在 linter > rules 下方新增 avoid_redundant_argument_values: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_redundant_argument_values: true