リンティングの概要
Flowには、型エラーだけでなく、さらに多くのことを教えてくれるリンティングフレームワークが含まれています。このフレームワークは高度に設定可能で、必要な情報を表示し、不要な情報を非表示にすることができます。
.flowconfig
でのリンティングの設定
リンティングの設定は、.flowconfig
の[lints]
セクションで、rule=severity
のペアのリストとして指定できます。これらの設定は、プロジェクト全体にグローバルに適用されます。
[lints]
all=warn
untyped-type-import=error
sketchy-null-bool=off
CLIからのリンティングの設定
リンティングの設定は、Flowサーバーコマンドの--lints
フラグを使用して、rule=severity
のペアをコンマ区切りで指定できます。これらの設定は、プロジェクト全体にグローバルに適用されます。
flow start --lints "all=warn, untyped-type-import=error, sketchy-null-bool=off"
コメントによるリンティングの設定
リンティングの設定は、flowlint
コメントを使用してファイル内に指定できます。これらの設定は、ファイルの領域、単一行、または行の一部に適用されます。詳細については、Flowlint コメントを参照してください。
1// flowlint sketchy-null:error2const x: ?number = 0;3
4if (x) {} // Error 5
6// flowlint-next-line sketchy-null:off7if (x) {} // No Error8
9if (x) {} /* flowlint-line sketchy-null:off */ // No Error10
11// flowlint sketchy-null:off12if (x) {} // No Error13if (x) {} // No Error
4:5-4:5: Sketchy null check on number [1] which is potentially 0. Perhaps you meant to check for null or undefined [2]? [sketchy-null-number]
リンティング設定の優先順位
flowlint
コメントのリンティング設定が最も優先度が高く、次に--lints
フラグのリンートルール、そして.flowconfig
が続きます。この順序により、flowlint
コメントをきめ細かいリンティング制御に、--lints
フラグを新しいリンティング設定の試用に、そして.flowconfig
を安定したプロジェクト全体の設定に使用できます。
--lints
フラグと.flowconfig
内では、下のルールが上のルールを上書きするため、次のようなものを書くことができます。
[lints]
# warn on all sketchy-null checks
sketchy-null=warn
# ... except for booleans
sketchy-null-bool=off
リンティング設定パーサーは非常にインテリジェントであり、冗長なルール、完全に上書きされるルール、または未使用のflowlint抑制を記述した場合、ユーザーを停止します。これにより、リンートルールのほとんどの誤った構成を防ぐことができます。
重大度レベルと意味
off: リンティングは無視されます。リンティングをoff
に設定することは、抑制コメントで型エラーを抑制することに似ていますが、はるかにきめ細かい制御が可能です。
warn: 警告は、リンティングフレームワークによって導入された新しい重大度レベルです。これらは、いくつかの点でエラーとは異なる扱いを受けます。
- 警告は、Flowの終了コードに影響を与えません。Flowが警告を見つけたがエラーがなかった場合、0を返します。
- 警告は、出力が多すぎるのを避けるために、デフォルトではCLIには表示されません。CLI警告は、FlowサーバーまたはFlowクライアントに
--include-warnings
フラグを渡すか、.flowconfig
でinclude_warnings=true
を設定することで有効にできます。これは、すべてのプロジェクト警告を一度に確認したい小規模プロジェクトに適しています。
error: 重大度error
のリンティングは、他のすべてのFlowエラーとまったく同じように扱われます。