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