no-non-null-asserted-nullish-coalescing
)The nullish coalescing operator is designed to provide a default value when dealing with null
or undefined
. Using non-null assertions in the left operand of the nullish coalescing operator is redundant.
Examples of code for this rule:
/* eslint @typescript-eslint/no-non-null-asserted-nullish-coalescing: "error" */ foo! ?? bar; foo.bazz! ?? bar; foo!.bazz! ?? bar; foo()! ?? bar; let x!: string; x! ?? ''; let x: string; x = foo(); x! ?? '';
/* eslint @typescript-eslint/no-non-null-asserted-nullish-coalescing: "error" */ 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! ?? '';
If you are not using TypeScript 3.7 (or greater), then you will not need to use this rule, as the nullish coalescing operator is not supported.