Flow 定义了所谓的“可能类型”。即?string
类似于string | null | void
(void
是一种值undefined
)。
是否有类似一般类型的东西可以具有任何价值,但null
和undefined
?基本上类似于$Diff<$Diff<any, null>, void>
if$Diff
运算符能够对非对象类型进行操作。
Flow 定义了所谓的“可能类型”。即?string
类似于string | null | void
(void
是一种值undefined
)。
是否有类似一般类型的东西可以具有任何价值,但null
和undefined
?基本上类似于$Diff<$Diff<any, null>, void>
if$Diff
运算符能够对非对象类型进行操作。
对此没有一些“神奇”的类型,但这样的东西应该可以工作:string | number | boolean | {} | []
可以使用NonMaybeType
Flow 实用程序类型:请参阅$NonMaybeType
$NonMaybeType<T>
将类型转换T
为非可能类型。换句话说, 的值$NonMaybeType<T>
是T
除 null 和 undefined 之外的值。
// @flow
type MaybeName = ?string;
type Name = $NonMaybeType<MaybeName>;
('Gabriel': MaybeName); // Ok
(null: MaybeName); // Ok
('Gabriel': Name); // Ok
(null: Name); // Error! null can't be annotated as Name because Name is not a maybe type