Disallows using a non-null assertion in the left operand of the nullish coalescing operator.
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! ?? '';
// .eslintrc.json
{
"rules": {
"@typescript-eslint/no-non-null-asserted-nullish-coalescing": "warn"
}
}
This rule is not configurable.
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.
- Configs:
- ✅ Recommended
- ✔ Strict
- 🔧 Fixable
- 💭 Requires type information