Flow字面量类型(Literal Types)

2018-01-25  本文已影响0人  vincent_z

字面量类型(Literal Types)

Flow针对字面量值有基本数据类型,但也可以使用字面量值作为类型。
下面的例子中,我们使用字面量值2来代替number类型。

// @flow
function acceptsTwo(value: 2) {
  // ...
}

acceptsTwo(2);   // Works!
// $ExpectError
acceptsTwo(3);   // Error!
// $ExpectError
acceptsTwo("2"); // Error!

你可以使用其它原始值来定义类型:

使用联合类型

// @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!
上一篇下一篇

猜你喜欢

热点阅读