typescript/non-nullable-type-assertion-style 제한
작동 방식
이 규칙은 비-널(null) 타입에 대해 명시적인 타입 캐스트보다 비-널 주장(!)을 선호합니다.
왜 나쁜가?
값이 반드시 null이나 undefined가 될 수 없다는 것을 알고 있다면, 비-널 주장(!) 또는 타입 주장(as Type) 중 하나를 사용할 수 있습니다. 비-널 주장은 더 간결하며, 값이 실제로 null/undefined가 아니라고 주장하고 있다는 의도를 명확히 전달합니다.
예시
이 규칙에 부적절한 코드 예시:
ts
declare const value: string | null;
// 비-널 주장이 더 명확할 때 타입 주장 사용
const result1 = value as string;
declare const maybe: number | undefined;
const result2 = maybe as number;
// 함수 호출에서의 사용
function takesString(s: string) {
console.log(s);
}
takesString(value as string);이 규칙에 적절한 코드 예시:
ts
declare const value: string | null;
// 비-널 주장은 비-널 타입에 적합
const result1 = value!;
declare const maybe: number | undefined;
const result2 = maybe!;
// 함수 호출에서의 사용
function takesString(s: string) {
console.log(s);
}
takesString(value!);
// 실제 타입 변경이 필요한 경우 타입 주장은 여전히 괜찮음
declare const unknown: unknown;
const str = unknown as string; // 이는 단순히 null을 제거하는 것이 아니라 다른 타입으로 변환함사용 방법
이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:
json
{
"rules": {
"typescript/non-nullable-type-assertion-style": "error"
}
}bash
oxlint --type-aware --deny typescript/non-nullable-type-assertion-style