跳至主要內容

extra_positional_arguments_could_be_named

位置引數過多:預期 {0} 個,但找到 {1} 個。

描述

#

當方法或函式呼叫具有比方法或函式允許的更多位置引數,但方法或函式定義了命名引數時,分析器會產生此診斷資訊。

示例

#

以下程式碼產生此診斷資訊,因為 f 定義了 2 個位置引數,但有一個可用於第三個引數的命名引數

dart
void f(int a, int b, {int? c}) {}
void g() {
  f(1, 2, 3);
}

常見修復方法

#

如果某些引數應為命名引數的值,則在引數前新增名稱

dart
void f(int a, int b, {int? c}) {}
void g() {
  f(1, 2, c: 3);
}

否則,移除不對應於位置引數的引數

dart
void f(int a, int b, {int? c}) {}
void g() {
  f(1, 2);
}