我再补充一点:
可选类型(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!