4

Flow 定义了所谓的“可能类型”。即?string类似于string | null | void(void是一种值undefined)。

是否有类似一般类型的东西可以具有任何价值,但nullundefined基本上类似于$Diff<$Diff<any, null>, void>if$Diff运算符能够对非对象类型进行操作。

4

2 回答 2

5

对此没有一些“神奇”的类型,但这样的东西应该可以工作:string | number | boolean | {} | []

于 2017-01-02T18:10:57.510 回答
2

可以使用NonMaybeTypeFlow 实用程序类型:请参阅$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
于 2018-10-22T16:15:10.090 回答