Flow_JS静态类型检查器

Flow Checker是Facebook公布的一个JavaScript静态类型检查器,能够在不改变代码的情况下,检查JavaScript中一般的Bug,如:无声类型转换、空指针引用等等。同时,Flow也支持给JavaScript添加类型语法,因此,开发者们可以通过在他们的代码中声明不变量让其自动维护。

Flow可以将其理解为两个东西:静态类型检查器、JavaScript方言

冒号后跟数据类型。
例:
function foo(x: string, y: number): number { return x.length * y; }
限制x为string,y为number,函数返回number。

function f(param:1|2|3|4|5){/*...*/}
declare var oneOrTwo:1|2;// Subset of the input parameters type.
declare var fiveOrSix:5|6;// Not a subset of the input parameters type.

f(oneOrTwo);// Works!
f(fiveOrSix);// Error!

以下代码中,value可以是"A"or"B".

function method(value: "A" | "B") {
    if (value === "A") { // value is "A"
    }
}

prop?:string 代表prop为string且可能存在。

function otherMethod() { /* ... */ }

function method(value: { prop ? : string }) {
    if (value.prop) {
        var prop = value.prop;
        otherMethod();
        prop.charAt(0);
    }
}

参考

教程:http://www.pinqy.cn/notes/flow-learning-1
官方文档:https://flow.org/

你可能感兴趣的:(Flow_JS静态类型检查器)