跳至主要内容

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);
}