Skip to content
← Back to rules

eslint/no-unsafe-optional-chaining 정확성

This rule is turned on by default.

작동 방식

정의되지 않은 값이 허용되지 않는 상황에서 옵셔널 체이닝 사용을 금지합니다

왜 문제가 되는가?

옵셔널 체이닝(?.) 표현식은 정의되지 않은 값을 반환하는 것으로 단절될 수 있습니다.
따라서 평가된 옵셔널 체이닝 표현식을 함수, 객체, 숫자 등으로 처리하면, TypeError 또는 예기치 않은 결과를 유발할 수 있습니다. 예를 들어:

예시

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

javascript
var obj = undefined;
1 in obj?.foo; // TypeError
with (obj?.foo); // TypeError
for (bar of obj?.foo); // TypeError
bar instanceof obj?.foo; // TypeError
const { bar } = obj?.foo; // TypeError

구성

이 규칙은 다음 속성을 가진 구성 객체를 수락합니다:

disallowArithmeticOperators

type: boolean

기본값: false

옵셔널 체이닝 표현식 위에서의 산술 연산을 금지합니다.
이 옵션이 true인 경우, 가능한 결과로 NaN이 발생할 수 있는 옵셔널 체이닝 표현식에 대한 산술 연산을 경고합니다.

사용 방법

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

json
{
  "rules": {
    "no-unsafe-optional-chaining": "error"
  }
}
bash
oxlint --deny no-unsafe-optional-chaining

참고 자료