.flowconfig [untyped]
.flowconfig
ファイルの[untyped]
セクションは、指定された正規表現に一致するファイルの型チェックを行わず、代わりに型を破棄してモジュールをany
として扱うようにFlowに指示します。
これは、一致するファイルをモジュールリゾルバーによって無視させ、それらを本質的に型チェックされていない状態にし、import
やrequire
で解決できなくする[ignore]
設定セクションとは異なります。無視される場合、[libs]
を各import
に対してflow-typed
を使用して指定する必要がありますが、これは必ずしも望ましいとは限りません。
また、[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/.*
とは異なり、src/third_party/
のように、third_party/
という名前のディレクトリにあるファイルまたはディレクトリは解析しません。