🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Flow规定,在需要做 'Flow 静态类型检查' 文件的开头加上`// @flow`或`/* @flow */`这段注释,让工具识别这个文件需要做静态类型检查,否则就会当作一般 js 文件对待,不做静态类型检查。 我们先在src目录下面新建一个index.js文件,再把前面简介出现的例子拿来用,利用Flow类型的定义方式,来解决这个例子的问题,改写为下面的代码, ``` // @flow function foo(x: number): number { return x + 666; } foo('HelloWorld!') ``` 运行一下检查命令看看, > npm run flow 结果如下: > my-project@ flow E:\Flow > flow > Error ------------------------------------------------------------------------------------------------- src/index.js:7:5 > Cannot call `foo` with `'HelloWorld!'` bound to `x` because string [1] is incompatible with number [2]. >  src/index.js:7:5 >  7| foo('HelloWorld!') >     ^^^^^^^^^^^^^ [1] > > References: >  src/index.js:3:17 >  3| function foo(x: number): number { >         ^^^^^^ [2] > Found 1 error 当使用非数字类型的值作为传入值时,就会出现由Flow工具发出的警告消息,上面大致的意思是foo函数调用失败,因为所声明的参数是number类型,而你传入的是string类型。