跳到主內容

field_initializer_not_assignable

在 const 建構函式中,初始化器型別“{0}”無法賦值給欄位型別“{1}”。

初始化器型別“{0}”無法賦值給欄位型別“{1}”。

描述

#

當建構函式的初始化列表將欄位初始化為無法賦值給該欄位的值時,分析器會生成此診斷資訊。

示例

#

以下程式碼會生成此診斷資訊,因為 0 的型別是 int,而 int 無法賦值給 String 型別的欄位

dart
class C {
  String s;

  C() : s = 0;
}

常見修復方法

#

如果欄位的型別是正確的,則更改賦給它的值,使其具有有效的型別

dart
class C {
  String s;

  C() : s = '0';
}

如果值的型別是正確的,則更改欄位的型別以允許賦值

dart
class C {
  int s;

  C() : s = 0;
}