Skip to content
← Back to rules

typescript/no-unsafe-type-assertion 의심스러움

💭 This rule requires type information.
An auto-fix is available for this rule.

작동 방식

타입을 좁히는 안전하지 않은 타입 강제 변환을 금지합니다.

왜 문제가 될까?

타입을 좁히는 타입 강제 변환은 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

참고 자료