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

invalid_type_argument_in_const_literal

定数リストリテラルでは、'{0}' のような型引数に型パラメーターを使用することはできません。

定数マップリテラルでは、'{0}' のような型引数に型パラメーターを使用することはできません。

定数セットリテラルでは、'{0}' のような型引数に型パラメーターを使用することはできません。

説明

#

この診断は、const でプレフィックスされたリスト、マップ、またはセットリテラルで型引数に型パラメーターが使用されている場合に、アナライザーによって生成されます。これは、型パラメーターの値(実行時に使用される実際の型)がコンパイル時に不明である可能性があるため、許可されていません。

#

以下のコードは、定数リストの作成時に型パラメーター T が型引数として使用されているため、この診断を生成します。

dart
List<T> newList<T>() => const <T>[];

以下のコードは、定数マップの作成時に型パラメーター T が型引数として使用されているため、この診断を生成します。

dart
Map<String, T> newSet<T>() => const <String, T>{};

以下のコードは、定数セットの作成時に型パラメーター T が型引数として使用されているため、この診断を生成します。

dart
Set<T> newSet<T>() => const <T>{};

一般的な修正

#

型パラメーターとして使用される型がコンパイル時に判明している場合は、型パラメーターを削除してください。

dart
List<int> newList() => const <int>[];

型パラメーターとして使用される型が実行時まで判明しない場合は、const キーワードを削除してください。

dart
List<T> newList<T>() => <T>[];