Flow可选类型(Maybe Types)
2018-01-25 本文已影响0人
vincent_z
可选类型(Maybe Types)
可选类型是用于值可选的地方,用法就是在类型前加一个?
,例如?string
或?number
。可选类型可以是null
或void
。
// @flow
function acceptsMaybeString(value: ?string) {
// ...
}
acceptsMaybeString("bar"); // Works!
acceptsMaybeString(undefined); // Works!
acceptsMaybeString(null); // Works!
acceptsMaybeString(); // Works!
可选对象属性
对象拥有可选属性的用法就是在属性后加一个?
,可选对象属性可以void
或省略,但不能是null
。如:
// @flow
function acceptsObject(value: { foo?: string }) {
// ...
}
acceptsObject({ foo: "bar" }); // Works!
acceptsObject({ foo: undefined }); // Works!
acceptsObject({ foo: null }); // Error!
acceptsObject({}); // Works!
可选函数参数
函数拥有可选参数的用法是在参数后加一个?
,可选参数可以void
或省略,但不能是null
。如:
// @flow
function acceptsOptionalString(value?: string) {
// ...
}
acceptsOptionalString("bar"); // Works!
acceptsOptionalString(undefined); // Works!
acceptsOptionalString(null); // Error!
acceptsOptionalString(); // Works!
函数参数默认值
在给定默认值类型的情况下,函数参数默认值可以是void
或省略,但不能是null
。如:
// @flow
function acceptsOptionalString(value: string = "foo") {
// ...
}
acceptsOptionalString("bar"); // Works!
acceptsOptionalString(undefined); // Works!
acceptsOptionalString(null); // Error!
acceptsOptionalString(); // Works!