typescript/prefer-optional-chain Nursery
작동 방식
널리 값이 될 수 있는 표현식에 대해 연결된 로직적 논리 연산자(&&), 부정된 논리적 배타적 연산자(||) 또는 빈 객체 대신 간결한 선택적 체인 표현식을 사용하도록 강제합니다.
참고로, 이 규칙은 다양한 예외 케이스 상황에서 정확히 작동하는지 확인하기 위해 ' nursery' 카테고리에 있습니다. 이 규칙의 논리는 복잡하며, 자동 수정 기능은 일부 예외 케이스에서 로직 변경을 유발할 수 있습니다.
왜 좋지 않은가?
TypeScript 3.7에서는 선택적 체인(?.)을 도입하여 가능성이 있는 널리 값(널 또는 언디피니드)에 대한 속성에 접근하는 더 간결하고 가독성이 좋은 방법을 제공했습니다. 로직적 && 체인이나 기타 패턴 대신 선택적 체인을 사용하면 코드의 명확성이 향상됩니다.
예시
이 규칙에 부적절한 코드 예시:
foo && foo.bar;
foo && foo.bar && foo.bar.baz;
foo && foo["bar"];
foo && foo.bar && foo.bar.baz && foo.bar.baz.buzz;
foo && foo.bar && foo.bar.baz.buzz;
foo && foo.bar.baz && foo.bar.baz.buzz;
(foo || {}).bar;이 규칙에 적절한 코드 예시:
foo?.bar;
foo?.bar?.baz;
foo?.["bar"];
foo?.bar?.baz?.buzz;
foo?.bar?.baz.buzz;
foo?.bar.baz?.buzz;
foo?.bar;구성
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.
allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing
type: boolean
기본값: false
표현식의 반환 타입을 변경하는 자동 수정 기능을 허용합니다. 이 옵션은 안전하지 않으며 빌드를 깨뜨릴 수 있습니다.
checkAny
type: boolean
기본값: true
"느슨한 부울" 연산자 검사 시 any 타입으로 지정된 연산자를 확인합니다.
checkBigInt
type: boolean
기본값: true
"느슨한 부울" 연산자 검사 시 bigint 타입으로 지정된 연산자를 확인합니다.
checkBoolean
type: boolean
기본값: true
"느슨한 부울" 연산자 검사 시 boolean 타입으로 지정된 연산자를 확인합니다.
checkNumber
type: boolean
기본값: true
"느슨한 부울" 연산자 검사 시 number 타입으로 지정된 연산자를 확인합니다.
checkString
type: boolean
기본값: true
"느슨한 부울" 연산자 검사 시 string 타입으로 지정된 연산자를 확인합니다.
checkUnknown
type: boolean
기본값: true
"느슨한 부울" 연산자 검사 시 unknown 타입으로 지정된 연산자를 확인합니다.
requireNullish
type: boolean
기본값: false
"느슨한 부울" 연산자 검사 시 null 및/또는 undefined로 타입 지정되지 않은 연산자를 건너뜁니다.
사용 방법
구성 파일이나 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
{
"rules": {
"typescript/prefer-optional-chain": "error"
}
}oxlint --type-aware --deny typescript/prefer-optional-chain