我有一个代码生成库,它需要知道正在生成的Type
。
我的大多数代码都能正常工作,因为类型“wrapper”可以简单地知道它所关联的Type
。但在一种情况下,我知道类型是Object?
,我想返回它。
但我找不到一个方法来真正做到这一点!
下面是运行良好的代码:
Type? typeFor(String name) {
// simple examples
if (name == 'String') return String;
if (name == 'bool') return bool;
return null;
}
字符串
现在,如果我尝试添加Object?
:
Type typeFor(String name) {
// simple examples
if (name == 'String') return String;
if (name == 'bool') return bool;
return Object?;
}
型
Dart认为Object?
实际上是一个不完全的三元运算符:(。
我试过(Object?)
,但它也不工作。
在Dart中表示可空类型是否有解决方案?
2条答案
按热度按时间eeq64g8w1#
您可以使用类型别名:
字符串
(Or如果您想遵循样式指南,可以给予一个 Camel 式大小写的名称,如
TypeOf
。)然后你可以把 any 类型写成
typeof<TheType>
这样的表达式。型
guicsvcw2#
使用泛型函数,在该函数中可以将类型作为类型参数传递:
字符串
(My dartbag package也提供了上面的
identityType
函数,尽管它显然非常简单。)