typescript/no-non-null-asserted-optional-chain 정확성
작동 방식
옵셔널 체인 표현식 이후에 비-널 확정 연산자(!)를 사용하는 것을 금지합니다.
왜 좋지 않은가?
디자인상, 옵셔널 체인 표현식(?.)은 접근하려는 객체가 null 또는 undefined일 경우 오류를 발생시키기보다는 그 표현식의 값으로 undefined를 제공합니다. 옵셔널 체인 표현식의 결과에 대해 비-널 확정 연산자(!)를 사용하여 값을 반드시 존재한다고 주장하는 것은 모순이며, 대부분 잘못된 것입니다. 이는 코드가 동시에 값이 null이나 undefined일 수 있다고 기대하면서도, 동시에 그 값이 비-널이라고 가정하고 있음을 나타냅니다.
대부분의 경우 다음 중 하나입니다:
- 객체는 널 가능성 없으며, 속성 검색에
?.이 필요하지 않았습니다. - 비-널 확정 연산자가 잘못되었고, 타입 안전성의 취약점을 유발합니다.
예시
이 규칙에 대한 잘못된 코드 예시:
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