Skip to content
← Back to rules

typescript/no-non-null-asserted-optional-chain 정확성

This rule is turned on by default.
An auto-fix is available for this rule.

작동 방식

옵셔널 체인 표현식 이후에 비-널 확정 연산자(!)를 사용하는 것을 금지합니다.

왜 좋지 않은가?

디자인상, 옵셔널 체인 표현식(?.)은 접근하려는 객체가 null 또는 undefined일 경우 오류를 발생시키기보다는 그 표현식의 값으로 undefined를 제공합니다. 옵셔널 체인 표현식의 결과에 대해 비-널 확정 연산자(!)를 사용하여 값을 반드시 존재한다고 주장하는 것은 모순이며, 대부분 잘못된 것입니다. 이는 코드가 동시에 값이 null이나 undefined일 수 있다고 기대하면서도, 동시에 그 값이 비-널이라고 가정하고 있음을 나타냅니다.

대부분의 경우 다음 중 하나입니다:

  1. 객체는 널 가능성 없으며, 속성 검색에 ?.이 필요하지 않았습니다.
  2. 비-널 확정 연산자가 잘못되었고, 타입 안전성의 취약점을 유발합니다.

예시

이 규칙에 대한 잘못된 코드 예시:

ts
foo?.bar!;
foo?.bar()!;

이 규칙에 대한 올바른 코드 예시:

ts
foo?.bar;
foo.bar!;

사용 방법

구성 파일 또는 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음과 같이 사용할 수 있습니다:

json
{
  "rules": {
    "typescript/no-non-null-asserted-optional-chain": "error"
  }
}
bash
oxlint --deny typescript/no-non-null-asserted-optional-chain

참고 자료