跳到主要内容

const_with_type_parameters

常量构造函数 tear-off 不能使用类型参数作为类型实参。

常量创建不能使用类型参数作为类型实参。

常量函数 tear-off 不能使用类型参数作为类型实参。

描述

#

当在构造函数的 const 调用中使用类型参数作为类型实参时,分析器会产生此诊断。这是不允许的,因为类型参数的值(运行时将使用的实际类型)在编译时是未知的。

示例

#

以下代码会产生此诊断,因为在创建常量时使用了类型参数 T 作为类型实参

dart
class C<T> {
  const C();
}

C<T> newC<T>() => const C<T>();

常见修复

#

如果可以在编译时确定用于类型参数的类型,则移除对类型参数的使用

dart
class C<T> {
  const C();
}

C<int> newC() => const C<int>();

如果直到运行时才能确定用于类型参数的类型,则移除关键字 const

dart
class C<T> {
  const C();
}

C<T> newC<T>() => C<T>();