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

no-non-null-asserted-nullish-coalescing

Nullish 合体演算子の左オペランドでの非nullアサーションを禁止します。

🔒

拡張 "plugin:@typescript-eslint/strict" ESLint 設定 で有効にすると、このルールが有効になります。

💡

このルールによって報告されるいくつかの問題は、エディターの 提案.

によって手動で修正できます。?? Nullish 合体ランタイム演算子は、null または undefined を処理する際にデフォルト値を提供できます。Nullish 合体演算子の左オペランドで! 非nullアサーション型演算子を使用することは冗長であり、プログラマーのエラーまたは2つの演算子に対する混乱の兆候である可能性が高いです。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error"
}
};

Playground でこのルールを試してみてください ↗

foo! ?? bar;
foo.bazz! ?? bar;
foo!.bazz! ?? bar;
foo()! ?? bar;

let x!: string;
x! ?? '';

let x: string;
x = foo();
x! ?? '';
Playground で開く

オプション

このルールは設定できません。

使用しない場合

プロジェクトの型が特定の値がnull許容可能かどうかをまだ完全に記述していない場合(strictNullChecksへの移行中など)、このルールによって多くの誤報告が発生する可能性があります。このルールを完全に無効にするのではなく、それらの特定の状況に対してESLint 無効化コメントを使用することを検討してください。

参考資料

リソース