typescript/no-non-null-asserted-nullish-coalescing 制限
何ができるか
左側のオペランドに非空アサーション(!)を使用したネルシスコーエース(??)演算子を禁止します。
なぜ悪いのか
?? ネルシスコーエースランタイム演算子は、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