Dart:无法将具有泛型的类型分配给Type变量

J F*_*J F 5 generics types dart

如果我尝试将一个带有泛型的类型赋给Type变量,我会得到一个错误,但如果我使用一个runtimeType变量,一切正常.

  Type t = List;
  //Type t1 = List<int>;  // ERROR !!!
  Type t2 = new List<int>().runtimeType;
  print('$t $t2');  //> List List<int>
Run Code Online (Sandbox Code Playgroud)

这是一个bug还是有些东西我没有得到?

Dav*_*gan 1

你的第一行令人惊讶,但是,是的,它有效。类文字的类型为“Type”:

print((List).runtimeType);
--> TypeImpl

print(List is Type);
--> true
Run Code Online (Sandbox Code Playgroud)

代码片段其余部分的问题正是您在 github 上发现的问题:

https://github.com/dart-lang/sdk/issues/11923

-- 类文字不能使用泛型。您必须获取一个实例并使用runtimeType 来获取您想要的类型。