Skip to content
← Back to rules

typescript/no-non-null-asserted-nullish-coalescing 制限

An auto-fix is available for this rule.

何ができるか

左側のオペランドに非空アサーション(!)を使用したネルシスコーエース(??)演算子を禁止します。

なぜ悪いのか

?? ネルシスコーエースランタイム演算子は、null または undefined の値に対してデフォルト値を提供するのに使用されます。ネルシスコーエース演算子の左側のオペランドに ! 非空アサーション型演算子を使用することは冗長であり、プログラマーの誤りや二つの演算子の混同を示す可能性が高いです。

このルールに対して不正なコードの例:

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

let x!: string;
x! ?? "";

let x: string;
x = foo();
x! ?? "";

このルールに対して正しいコードの例:

ts
foo ?? bar;
foo ?? bar!;
foo!.bazz ?? bar;
foo!.bazz ?? bar!;
foo() ?? bar;
ts
// これも正しいコードと見なされる。ユーザーがこれを満たす方法がないため。
let x: string;
x! ?? "";

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "rules": {
    "typescript/no-non-null-asserted-nullish-coalescing": "error"
  }
}
bash
oxlint --deny typescript/no-non-null-asserted-nullish-coalescing

参照