美文网首页
Flow字面量类型(Literal Types)

Flow字面量类型(Literal Types)

作者: vincent_z | 来源:发表于2018-01-25 22:36 被阅读0次

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

          本文链接:https://www.haomeiwen.com/subject/bhibaxtx.html