typescript/no-unsafe-assignment Pedantic
작동 방식
이 규칙은 any 타입을 가진 값이 변수와 속성에 할당되는 것을 금지합니다.
왜 좋지 않은가?
타입스크립트에서 any 타입은 타입 검사를 비활성화하고 런타임 오류를 유발할 수 있습니다. any 값을 타입이 지정된 변수에 할당할 때, 실제로는 타입스크립트의 타입 안전성을 무시하는 것이며, 실제 값에 대한 보장도 없습니다.
예시
이 규칙에 부적절한 코드 예시:
ts
declare const anyValue: any;
const str: string = anyValue; // 안전하지 않은 할당
let num: number;
num = anyValue; // 안전하지 않은 할당
const obj = {
prop: anyValue as any, // 안전하지 않은 할당
};
interface User {
name: string;
age: number;
}
const user: User = anyValue; // 안전하지 않은 할당이 규칙에 적절한 코드 예시:
ts
declare const stringValue: string;
declare const numberValue: number;
declare const unknownValue: unknown;
const str: string = stringValue; // 안전한 할당
let num: number;
num = numberValue; // 안전한 할당
// 타입 가드를 사용하여 unknown 처리
if (typeof unknownValue === "string") {
const str2: string = unknownValue; // 타입 가드 후 안전한 할당
}
// 명시적인 any 할당 (권장되지는 않지만 의도적)
const anything: any = unknownValue;사용 방법
구성 파일 또는 CLI를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"typescript/no-unsafe-assignment": "error"
}
}bash
oxlint --type-aware --deny typescript/no-unsafe-assignment