Javascript静态类型检测器Flow字面量类型(Literal Types)介绍

196 1 年前
Flow有许多用于字面量值的原始类型,但是,也可以使用字面量值作为类型。比如,把一个数值2做为一个类型对待

(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"

与联合类型(union types)一起使用功能更加强大:

// @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!

更多请访问 字面量类型

分类栏目
© 2018邮箱:11407215#qq.comGitHub沪ICP备12039518号-6