字面量类型(Literal Types)
Flow针对字面量值有基本数据类型,但也可以使用字面量值作为类型。
下面的例子中,我们使用字面量值2来代替number
类型。
// @flow
function acceptsTwo(value: 2) {
// ...
}
acceptsTwo(2); // Works!
// $ExpectError
acceptsTwo(3); // Error!
// $ExpectError
acceptsTwo("2"); // Error!
你可以使用其它原始值来定义类型:
- Booleans: 如true或false
- Numbers: 如42或3.14
- Strings: 如"foo"或"bar"
使用联合类型
// @flow
function getColor(name: "success" | "warning" | "danger") {
switch (name) {
case "success" : return "green";
case "warning" : return "yellow";
case "danger" : return "red";
}
}
getColor("success"); // Works!
getColor("danger"); // Works!
// $ExpectError
getColor("error"); // Error!
网友评论