メインコンテンツにスキップ

型_パラメータ_自身の_境界_の_超型

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