跳過主內容

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> {}