为什么可以';我在Dart 2中使用泛型类型作为参数吗?

为什么可以';我在Dart 2中使用泛型类型作为参数吗?,dart,Dart,这似乎是允许的 List<Type> myTypes = List(); myTypes.add(SomeType); List<Type> moreTypes = [int, String]; List myTypes=List(); 添加(SomeType); 列出更多类型=[int,String]; 但这失败了 List<Type> myTypes = List(); myTypes.add(SomeGenericType<

这似乎是允许的

  List<Type> myTypes = List();
  myTypes.add(SomeType);

  List<Type> moreTypes = [int, String];
List myTypes=List();
添加(SomeType);
列出更多类型=[int,String];
但这失败了

  List<Type> myTypes = List();
  myTypes.add(SomeGenericType<int>);

  List<Type> moreTypes = [SomeGenericType<int>, SomeGenericType<String>];
List myTypes=List();
添加(SomeGenericType);
列出更多类型=[SomeGenericType,SomeGenericType];
错误消息是:


操作符“这与这个问题有关:-但这不是一个真正的重复问题,这就是我在这里复制它的原因

虽然它没有回答“为什么”,但它给出了“如何”的解决方案:

辅助功能:

Type typeOf<T>() => T;
Type typeOf()=>T;
然后您可以在不需要实例的情况下获取类型:

myTypes.add(typeOf<SomeGenericType<int>>());
myTypes.add(typeOf());

即使这是不允许的:类型myType=SomeGenericType;