Ben*_*Lee 3 static-typing dart
在 Dart 中是否可以像在 TypeScript 中那样拥有恰好两种类型的列表?例如,这样的东西会编译:
List<int|String> foo = [
1,2,3,4,'baz'
];
Run Code Online (Sandbox Code Playgroud)
虽然这不会:
List<int|String> foo = [
1,2,false,4,'baz',[],3.0
];
Run Code Online (Sandbox Code Playgroud)
不。
Dart 类型系统不包含通用联合类型。它不能在类型系统中表达“必须是int
或”String
两个可用的例外是:
Null
(可空类型,例如int?
)。Future
同一事物的一部分 ( FutureOr
)。这两种联合类型是类型系统已知的。对于所有其他组合,您所能做的就是选择一个类型,该类型是这两种类型的超类型。在这种情况下,最接近的公共超类型是Object
。类型系统不会阻止您将布尔值或列表放入其中。
归档时间: |
|
查看次数: |
1560 次 |
最近记录: |