invalid_type_argument_in_const_literal
常量列表字面量不能在型別實參中使用型別形參,例如 '{0}'。
常量 map 字面量不能在型別實參中使用型別形參,例如 '{0}'。
常量 set 字面量不能在型別實參中使用型別形參,例如 '{0}'。
描述
#當在帶有 const 字首的列表、map 或 set 字面量的型別實參中使用型別形參時,分析器會生成此診斷。這是不允許的,因為型別形參的值(執行時將使用的實際型別)在編譯時是未知的。
示例
#以下程式碼會生成此診斷,因為在建立常量列表時,型別形參 T 被用作型別實參
dart
List<T> newList<T>() => const <T>[];以下程式碼會生成此診斷,因為在建立常量 map 時,型別形參 T 被用作型別實參
dart
Map<String, T> newSet<T>() => const <String, T>{};以下程式碼會生成此診斷,因為在建立常量 set 時,型別形參 T 被用作型別實參
dart
Set<T> newSet<T>() => const <T>{};常見修復方法
#如果在編譯時知道型別形參將使用的型別,則刪除型別形參
dart
List<int> newList() => const <int>[];如果直到執行時才知道型別形參將使用的型別,則刪除關鍵字 const
dart
List<T> newList<T>() => <T>[];