noNonNullAssertedOptionalChain
Ce contenu n’est pas encore disponible dans votre langue.
Summary
Section titled “Summary”- Rule available since: v2.1.4
- Diagnostic Category: lint/suspicious/noNonNullAssertedOptionalChain
- This rule is recommended, which means is enabled by default.
- This rule doesn’t have a fix.
- The default severity of this rule is error.
- Sources:
How to configure
Section titled “How to configure”{  "linter": {    "rules": {      "suspicious": {        "noNonNullAssertedOptionalChain": "error"      }    }  }}Description
Section titled “Description”Disallow non-null assertions after optional chaining expressions.
Optional chaining (?.) is designed to return undefined if the object is null or undefined.
Using a non-null assertion (!) immediately after optional chaining defeats the purpose
of optional chaining and can lead to runtime errors.
Examples
Section titled “Examples”Invalid
Section titled “Invalid”obj?.prop!;code-block.ts:1:1 lint/suspicious/noNonNullAssertedOptionalChain ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Forbidden non-null assertion after optional chaining.
  
  > 1 │ obj?.prop!;
      │ ^^^^^^^^^^
    2 │ 
  
  ℹ Optional chaining already handles nullish values. Using non-null assertion defeats its purpose and may cause runtime errors.
  
  ℹ Consider using the nullish coalescing operator ?? or optional chaining throughout the chain instead.
  
obj?.method()!.prop;code-block.ts:1:1 lint/suspicious/noNonNullAssertedOptionalChain ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Forbidden non-null assertion after optional chaining.
  
  > 1 │ obj?.method()!.prop;
      │ ^^^^^^^^^^^^^^
    2 │ 
  
  ℹ Optional chaining already handles nullish values. Using non-null assertion defeats its purpose and may cause runtime errors.
  
  ℹ Consider using the nullish coalescing operator ?? or optional chaining throughout the chain instead.
  
obj?.[key]!.method();code-block.ts:1:1 lint/suspicious/noNonNullAssertedOptionalChain ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Forbidden non-null assertion after optional chaining.
  
  > 1 │ obj?.[key]!.method();
      │ ^^^^^^^^^^^
    2 │ 
  
  ℹ Optional chaining already handles nullish values. Using non-null assertion defeats its purpose and may cause runtime errors.
  
  ℹ Consider using the nullish coalescing operator ?? or optional chaining throughout the chain instead.
  
obj?.prop;obj!.prop?.method();obj?.prop ?? defaultValue;Related links
Section titled “Related links”Copyright (c) 2023-present Biome Developers and Contributors.