.flowconfig [宣告]
第三方函式庫通常有錯誤的類型定義,或只有與特定版本的 Flow 相容的類型定義。在這些情況下,使用第三方函式庫的類型資訊,而不檢查其內容的類型,可能會很有用。
.flowconfig
檔案中的 [declarations]
區段會指示 Flow 以宣告模式剖析符合指定正規表示式的檔案。在宣告模式中,不會檢查程式碼的類型。不過,函式、類別等的簽章會被提取出來,並在檢查其他程式碼時,由類型檢查器使用。
從概念上來說,可以將宣告模式視為 Flow 仍然會檢查檔案的類型,但會像每一行都有 $FlowFixMe
註解一樣。
另請參閱 [untyped]
,以了解如何不檢查檔案的類型,而是對所有內容使用 any
。
需要記住的事項
- 宣告模式只能用於現有的第三方程式碼。您絕不應該將其用於您控制下的程式碼。
- 這些是 OCaml 正規表示式。
- 這些正規表示式與絕對路徑相符。它們可能應該以
.*
開頭
範例 [declarations]
區段可能如下所示
[declarations]
.*/third_party/.*
.*/src/\(foo\|bar\)/.*
.*\.decl\.js
這個 [declarations]
區段會以宣告模式剖析
- 名為
third_party
的目錄下的任何檔案或目錄 .*/src/foo
或.*/src/bar
下的任何檔案或目錄- 任何以副檔名
.decl.js
結尾的檔案
您可以在正規表示式中使用 <PROJECT_ROOT>
佔位符。在執行階段,Flow 會將佔位符視為專案根目錄的絕對路徑。這對於撰寫相對而非絕對的路徑正規表示式很有用。
例如,您可以撰寫
[declarations]
<PROJECT_ROOT>/third_party/.*
這會在專案根目錄下的 third_party/
目錄中的任何檔案或目錄中解析宣告模式。但是,與前一個範例的 .*/third_party/.*
不同,它不會解析 third_party/
目錄下的檔案或目錄,例如 src/third_party/
。