.flowconfig [untyped]
.flowconfig
檔案中的 [untyped]
區段會指示 Flow 不要對符合指定正規表示式的檔案進行類型檢查,而是捨棄類型,並將模組視為 any
。
這與 [ignore]
設定區段不同,後者會導致模組解析器忽略符合的檔案,這會讓檔案無法進行類型檢查,也無法透過 import
或 require
解析。如果忽略檔案,則必須針對每個使用 flow-typed
的 import
指定 [libs]
,這並非總是理想的狀況。
這也與 [declarations]
區段不同。此區段也不會對檔案內容進行類型檢查,但 [declarations]
會在檢查其他程式碼時擷取並使用函式、類別等的特徵。
[untyped]
會讓檔案被類型檢查器忽略,就像檔案中含有 @noflow
一樣,將模組解析為 any
類型,但允許模組解析器不忽略它們。Flow 會略過任何符合的檔案(甚至不會像其他 @noflow
檔案一樣進行剖析),但仍可以 require()
這些檔案。
注意事項
- 這些是 OCaml 正規表示式。
- 這些正規表示式會與絕對路徑進行比對。它們可能應該以
.*
開頭
範例 [untyped]
區段可能如下所示
[untyped]
.*/third_party/.*
.*/src/\(foo\|bar\)/.*
.*\.untyped\.js
此 [untyped]
區段將會剖析
- 命名為
third_party
的目錄下的任何檔案或目錄 .*/src/foo
或.*/src/bar
下的任何檔案或目錄- 任何以副檔名
.untyped.js
結尾的檔案
您可以在正規表示式中使用 <PROJECT_ROOT>
佔位符。在執行階段,Flow 會將佔位符視為專案根目錄的絕對路徑。這對於撰寫相對而不是絕對的路徑正規表示式很有用。
例如,您可以撰寫
[untyped]
<PROJECT_ROOT>/third_party/.*
這會在專案根目錄中剖析命名為 third_party/
的目錄下的任何檔案或目錄。然而,與前一個範例的 .*/third_party/.*
不同的是,它不會剖析命名為 third_party/
的目錄下的檔案或目錄,例如 src/third_party/
。