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 で開くfoo ?? bar;
foo ?? bar!;
foo!.bazz ?? bar;
foo!.bazz ?? bar!;
foo() ?? bar;
// This is considered correct code because there's no way for the user to satisfy it.
let x: string;
x! ?? '';
Playground で開くオプション
このルールは設定できません。
使用しない場合
プロジェクトの型が特定の値がnull許容可能かどうかをまだ完全に記述していない場合(strictNullChecks
への移行中など)、このルールによって多くの誤報告が発生する可能性があります。このルールを完全に無効にするのではなく、それらの特定の状況に対してESLint 無効化コメントを使用することを検討してください。