Skip to content
← Back to rules

typescript/no-unsafe-assignment Pedantic

💭 This rule requires type information.

작동 방식

이 규칙은 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

참고자료