跳到主要内容

const_constructor_param_type_mismatch

类型为 '{0}' 的值不能赋值给 const 构造函数中类型为 '{1}' 的参数。

描述

#

当常量值的运行时类型无法赋值给常量构造函数参数的静态类型时,分析器会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为 i 的运行时类型是 int,它不能赋值给 s 的静态类型

dart
class C {
  final String s;

  const C(this.s);
}

const dynamic i = 0;

void f() {
  const C(i);
}

常见修复方法

#

向构造函数传递正确类型的值

dart
class C {
  final String s;

  const C(this.s);
}

const dynamic i = 0;

void f() {
  const C('$i');
}