Avoid extra non-null assertions
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
ID: typescript-best-practices/no-extra-non-null-assertion
Language: TypeScript
Severity: Error
Category: Error Prone
Description
The non null
or undefined
assertion operation should not be used twice in a single expression.
Non-Compliant Code Examples
const bar = foo!!.bar;
function foo(bar: number | undefined) { const bar: number = bar!!; }
function foo(bar?: { n: number }) { return bar!?.n; }
function foo(bar?: { n: number }) { return bar!?.(); }
// parentheses
const foo: { bar: number } | null = null; const bar = (foo!)!.bar;
function foo(bar?: { n: number }) { return (bar!)?.n; }
function foo(bar?: { n: number }) { return (bar)!?.n; }
function foo(bar?: { n: number }) { return (bar!)?.(); }
Compliant Code Examples
const bar = foo!.bar;
function foo(bar: number | undefined) {
const bar: number = bar!;
}
function foo(bar?: { n: number }) {
return bar?.n;
}
// https://github.com/typescript-eslint/typescript-eslint/issues/2166
checksCounter?.textContent!.trim();
// https://github.com/typescript-eslint/typescript-eslint/issues/2732
function foo(key: string | null) {
const obj = {};
return obj?.[key!];
}