type_parameter_supertype_of_its_bound
'{0}' 不能是其上限的超类型。
描述
#当类型参数的上限(即 extends
关键字后的类型)直接或间接是类型参数本身时,分析器会生成此诊断信息。声明类型参数必须与自身相同或为自身的子类型,或者为自身的子类型的子类型是没有帮助的,因为它总是与自身相同。
示例
#以下代码生成此诊断信息,因为 T
的上限是 T
dart
class C<T extends T> {}
以下代码生成此诊断信息,因为 T1
的上限是 T2
,而 T2
的上限是 T1
,这实际上使得 T1
的上限为 T1
dart
class C<T1 extends T2, T2 extends T1> {}
常见修复方法
#如果类型参数需要是某种类型的子类,请将上限替换为所需的类型
dart
class C<T extends num> {}
如果类型参数可以是任何类型,请移除 extends
子句
dart
class C<T> {}