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類型。