跳到主要內容

field_initializing_formal_not_assignable

引數型別“{0}”與欄位型別“{1}”不相容。

描述

#

當初始化形參的型別無法賦值給被初始化的欄位型別時,分析器會產生此診斷。

示例

#

以下程式碼會產生此診斷,因為初始化形參的型別是 String,但欄位的型別是 int。引數的型別必須是欄位型別的子型別。

dart
class C {
  int f;

  C(String this.f);
}

常見修復方法

#

如果欄位的型別不正確,則將欄位型別更改為與引數型別匹配,並考慮移除引數的型別

dart
class C {
  String f;

  C(this.f);
}

如果引數的型別不正確,則移除引數的型別

dart
class C {
  int f;

  C(this.f);
}

如果欄位和引數的型別都正確,則使用初始化表示式而非初始化形參將引數值轉換為正確型別的值

dart
class C {
  int f;

  C(String s) : f = int.parse(s);
}