consistent-return
return
文で、常に値を指定するか、決して値を指定しないかのいずれかを必須にします。
💭
このルールでは、 型情報 を実行する必要があります。
このルールは、基本のeslint/consistent-return
ルールを拡張したものです。このバージョンでは、void
またはPromise<void>
を返す関数のサポートが追加されています。
警告
可能な場合は、このルールではなく、tsconfigの`noImplicitReturns`オプションを使用することをお勧めします。 `noImplicitReturns`は、TSの型情報と制御フロー分析によって強化されているため、このルールよりもカバレッジが優れています。
- ❌ 間違い
- ✅ 正解
function foo(): undefined {}
function bar(flag: boolean): undefined {
if (flag) return foo();
return;
}
async function baz(flag: boolean): Promise<undefined> {
if (flag) return;
return foo();
}
プレイグラウンドで開くfunction foo(): void {}
function bar(flag: boolean): void {
if (flag) return foo();
return;
}
async function baz(flag: boolean): Promise<void | number> {
if (flag) return 42;
return;
}
プレイグラウンドで開くオプション
eslint/consistent-return
のオプションを参照してください。
使用方法
.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"consistent-return": "off",
"@typescript-eslint/consistent-return": "error"
}
};
プレイグラウンドでこのルールを試す ↗
使用しない場合
型チェックされたLintルールは、従来のLintルールよりも強力ですが、型チェックされたLintingを設定する必要があります。型チェックされたルールを有効にした後にパフォーマンスの低下が発生した場合は、パフォーマンスのトラブルシューティングを参照してください。