跳到主要内容

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