# 一、JavaScript静态类型检查器
# Flow概述
w3cschool-flow官方参考文档 (opens new window)
Flow
是JavaScript
的静态类型检查器,是通过静态类型推断实现类型检查的。是2014
年由FaceBook
推出的一款工具,使用它就可以弥补JavaScript
弱类型带来的一些弊端。可以说它为JavaScript
提供了更完善的类型系统。在React
和Vue
的项目中,都看到Flow
的使用。
JavaScript
本身是动态类型检查的语言,代码在执行的过程中检查类型是否正确,C#
和Java
都是静态类型检查,在代码编译的时候检查类型是否正确。使用flow
就可以让JavaScript
有像C#
和Java
一样的开发体验。
通过在代码中添加注解的方式,标记每个变量或者参数是什么类型的,然后
Flow
根据这些注解就可以检查代码异常,从而实现在开发阶段类型异常的检查。
- 参数的冒号称为类型注解,在发布的时候会通过
Babel
将注解消除,所以生产环境不会产生影响。- 不要求所有的变量和参数都加注解,不加的为
any
类型。
function sum (a: number, b: number) {
return n * n
}
sum(100, 50)
sum('100', 50) // 可以检测异常
1
2
3
4
5
6
2
3
4
5
6
# Flow VS. TypeScript
Flow
与TypeScript
都是静态类型检查器,TypeScript
的功能更加强大,但他们都是JavaScript
的超集,基于JavaScript
,最终都要编译成JS
运行。一般大型项目都需要静态类型检查来确保代码的可维护性和可读性,Vue2.0
的源码引入了flow
,flow
可以让代码在最小改动的情况下使用动态类型检查,而在Vue3.0
中已经使用TypeScript
开发了。
# Flow安装
npm flow-bin (opens new window)
npm init -y
npm i flow-bin --dev
1
2
3
2
3
可以在node_modules
的.bin
目录中看到flow
,我们可以在命令行中执行flow
,作用就是项目中检查代码中类型异常。
二、Flow使用 →