Flow中的或操作和类型判断
Flow中的或操作:
当我们希望一个变量可以是一种数据类型,也可以是其他指定的数据类型的时候,我们就可以使用flow中的或操作。
语法:
let 变量名 : 数据类型1 | 数据类型2 | ... = 数据初始值 ;
实例代码:
//@flow
let a: number | string = 10;
a = "123";
此时flow检查变量 a 的类型的时候既可以是 number类型的,也可以是string类型的。因此我们在第三行代码将a赋值为字符串"123" 后我们执行 npm run flow 就不会报错,运行结果如下图所示:
Flow中的逻辑判断:
当我们没有给一个变量明确的数据类型的时候,flow会根据程序进行判断该类类型。
实例代码:
//flow中的类型推断
function test(a: number, b: number) {
return a + b;
}
let c: string = test(1, 2);
上述代码中,我们在定义test函数的时候并没有对返回值的数据类型进行规定,但flow通过对返回的表达式 a+b 中通过a和b都是number类型的,因此推断出函数的返回值应该也是number类型的。因此我们在用一个string类型的变量去接受test函数的返回值后执行 npm run flow时就会报错。报错结果如下所示:
受test函数的返回值后执行 npm run flow时就会报错。报错结果如下所示: