typescript/no-unsafe-type-assertion 의심스러움
작동 방식
타입을 좁히는 안전하지 않은 타입 강제 변환을 금지합니다.
왜 문제가 될까?
타입을 좁히는 타입 강제 변환은 TypeScript의 타입 검사기를 우회하며, 런타임 오류를 유발할 수 있습니다. 반면, 타입을 넓히는 타입 강제 변환은 안전합니다. 왜냐하면 TypeScript가 타입에 대해 더 적은 정보만 알고 있기 때문입니다. 타입을 좁히기 위해 타입 강제 변환을 사용하는 대신, 타입 가드를 활용하는 것이 더 바람직합니다. 타입 가드는 안전하지 않은 타입 강제 변환으로 인해 발생할 수 있는 잠재적 런타임 오류를 방지하는 데 도움이 됩니다.
예시
이 규칙에 대한 잘못된 코드 예시:
ts
function f() {
return Math.random() < 0.5 ? 42 : "oops";
}
const z = f() as number;
const items = [1, "2", 3, "4"];
const number = items[0] as number;이 규칙에 대한 올바른 코드 예시:
ts
function f() {
return Math.random() < 0.5 ? 42 : "oops";
}
const z = f() as number | string | boolean;
const items = [1, "2", 3, "4"];
const number = items[0] as number | string | undefined;사용 방법
구성 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"typescript/no-unsafe-type-assertion": "error"
}
}bash
oxlint --type-aware --deny typescript/no-unsafe-type-assertion