Flow_JS静态类型检查器
2018-08-12 本文已影响14人
AmazRan
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/