メインコンテンツへスキップ

リンティングの概要

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フラグを渡すか、.flowconfiginclude_warnings=trueを設定することで有効にできます。これは、すべてのプロジェクト警告を一度に確認したい小規模プロジェクトに適しています。

error: 重大度errorのリンティングは、他のすべてのFlowエラーとまったく同じように扱われます。