跳到主要內容

.flowconfig [untyped]

.flowconfig 檔案中的 [untyped] 區段會指示 Flow 不要對符合指定正規表示式的檔案進行類型檢查,而是捨棄類型,並將模組視為 any

這與 [ignore] 設定區段不同,後者會導致模組解析器忽略符合的檔案,這會讓檔案無法進行類型檢查,也無法透過 importrequire 解析。如果忽略檔案,則必須針對每個使用 flow-typedimport 指定 [libs],這並非總是理想的狀況。

這也與 [declarations] 區段不同。此區段也不會對檔案內容進行類型檢查,但 [declarations] 會在檢查其他程式碼時擷取並使用函式、類別等的特徵。

[untyped] 會讓檔案被類型檢查器忽略,就像檔案中含有 @noflow 一樣,將模組解析為 any 類型,但允許模組解析器不忽略它們。Flow 會略過任何符合的檔案(甚至不會像其他 @noflow 檔案一樣進行剖析),但仍可以 require() 這些檔案。

注意事項

  1. 這些是 OCaml 正規表示式
  2. 這些正規表示式會與絕對路徑進行比對。它們可能應該以 .* 開頭

範例 [untyped] 區段可能如下所示

[untyped]
.*/third_party/.*
.*/src/\(foo\|bar\)/.*
.*\.untyped\.js

[untyped] 區段將會剖析

  1. 命名為 third_party 的目錄下的任何檔案或目錄
  2. .*/src/foo.*/src/bar 下的任何檔案或目錄
  3. 任何以副檔名 .untyped.js 結尾的檔案

您可以在正規表示式中使用 <PROJECT_ROOT> 佔位符。在執行階段,Flow 會將佔位符視為專案根目錄的絕對路徑。這對於撰寫相對而不是絕對的路徑正規表示式很有用。

例如,您可以撰寫

[untyped]
<PROJECT_ROOT>/third_party/.*

這會在專案根目錄中剖析命名為 third_party/ 的目錄下的任何檔案或目錄。然而,與前一個範例的 .*/third_party/.* 不同的是,它不會剖析命名為 third_party/ 的目錄下的檔案或目錄,例如 src/third_party/