跳到主要内容

initializing_formal_for_non_existent_field

'{0}' 不是包含类中的字段。

描述

#

当分析器在一个类中找到构造函数使用了初始化形式参数,但该类没有声明被初始化的字段时,就会产生此诊断。构造函数不能初始化未声明的字段或从超类继承的字段。

示例

#

以下代码会产生此诊断,因为字段 x 未定义

dart
class C {
  int? y;

  C(this.x);
}

常见修复方法

#

如果字段名错误,请将其更改为现有字段的名称

dart
class C {
  int? y;

  C(this.y);
}

如果字段名正确但尚未定义,请声明该字段

dart
class C {
  int? x;
  int? y;

  C(this.x);
}

如果需要该参数但不应初始化字段,请将其转换为普通参数并使用它

dart
class C {
  int y;

  C(int x) : y = x * 2;
}

如果不需要该参数,请将其移除

dart
class C {
  int? y;

  C();
}