跳到主要內容

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