Flow字面量类型(Literal Types)

字面量类型(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!

你可能感兴趣的:(Flow字面量类型(Literal Types))