內容

avoid_redundant_argument_values

避免多餘的參數值。

此規則自 Dart 2.8 起可用。

此規則具有可用的快速修正

詳細資訊

#

請勿傳遞與對應參數的預設值相符的引數。

請注意,方法覆寫可能會變更參數的預設值,因此引數可能等於一個預設值,而不等於另一個預設值。例如,假設有兩個類別 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