边喝热水边学Vue源码之一--语法检查工作之flow
## Flow 的了解和使用由于javaScript属于弱语言,没有强制的类型检查,所以在运行的过程中很容易会出现bug,所以语法检查是很有必要的,flow是js中的一个语法检查工具,基本两大功能类型推断和类型注释。与flow类似的工具还有TypeScript,至于为甚选择flow好像和Babel与Eslint有关。
##### flow安装指令
` npm i -g flow-bin `
##### flow 配置
`flow init` 在目标目录下创建`.flowcofing`文件
将各种需要的js文件放在相应的分类下面
```
```
#####运行flow,检查语法
就是在`.flowcofing`的同级目录下运行`flow`指令。
#### 类型推断
所在目录 `\fow-test\index.js`
``` js
// @flow
function Hello(num) {
return 2 * num
}
Hello("ok")
```
这里应该是报错的,我这运行居然是 No errors! 打脸
```
PS D:\Desktop\vue笔记\代码\flow-test> ls
目录: D:\Desktop\vue笔记\代码\flow-test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2023/11/6 19:31 69 .flowconfig
-a---- 2023/11/6 19:41 291 index.js
PS D:\Desktop\vue笔记\代码\flow-test> flow
No errors!
```
#### 类型注释
```js
//@flow
function add(x: number, y: number): number {
return x + y
}
add('hello', 11)
```
运行flow同样显示没有错误,算了知道是什么意思就行了,以后有空再来纠错把。
##### 原因分析一:
可能是所在目录不对,但我在上级目录下运行flow报错了,说明需要在`.flowconfig`的同级目录下才有效
```
PS D:\Desktop\vue笔记\代码> flow
Could not find a .flowconfig in . or any of its parent directories.
See "flow init --help" for more info
```
#####原因分析二:
可能与所使用的node的版本有关,但这个可能需要更新node,暂时不想处理太过复杂
```
PS D:\Desktop\vue笔记\代码> node -v
v12.18.2
```
~~先去取快递了,希望邮政没有关门~~
页:
[1]