美文网首页JavaScript 进阶营
vue源码学习 --- flow学习(2)

vue源码学习 --- flow学习(2)

作者: 2分_08b6 | 来源:发表于2019-01-09 14:43 被阅读0次

原文: https://flow.org/en/docs/types/literals/

一. 其他

1. 指定具体值

只能接受指定的值

function acceptsTwo(value: 2) {
  // ...
}
acceptsTwo(2);   // Works!
// acceptsTwo(3);   // Error!
// acceptsTwo("2"); // Error!

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!
// getColor("error");   // Error!

2. 混合类型

即各种类型的值都能接受

function stringify(value: mixed) {
  // ...
}
stringify("foo");
stringify(3.14);
stringify(null);
stringify(undefined);
stringify({});

3. 任意类型

一般情况下是不推荐使用的

function add(one: any, two: any): number {
  return one + two;
}

add(1, 2);     // Works.
add("1", "2"); // Works.
add({}, []);   // Works.

4. 可能值(Maybe types)

语法: ?number , 值可能是number, null, undefined

function acceptsMaybeNumber(value: ?number) {
  // ...
}

acceptsMaybeNumber(42);        // Works!
acceptsMaybeNumber();          // Works!
acceptsMaybeNumber(undefined); // Works!
acceptsMaybeNumber(null);      // Works!
// acceptsMaybeNumber("42");      // Error!
acceptsMaybeNumber(Number('123'));      // Works!

5. JavaScript变量声明

var let const

const foo /* : number */ = 1;
const bar: number = 2;
var barVar: number = 2;
let barLet: number = 2;
let isOneOf: number | boolean | string = foo; // Works!
let bool = true;
let isBoolean: boolean = bool; // Works!

let test: boolean = 42;
function mutate() {
  test = true;
  test = "hello";
}
mutate();           // Error!

vue源码学习 --- flow学习(3)
https://www.jianshu.com/p/440d52a7ef97

相关文章

网友评论

    本文标题:vue源码学习 --- flow学习(2)

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