typescript/no-unsafe-argument 철저한
수행하는 작업
이 규칙은 any로 타입 지정된 인수를 가진 함수 호출을 금지합니다.
왜 나쁜가요?
타입스크립트의 any 타입은 타입 시스템에서 벗어나는 위험한 "긴급 통로"입니다. any를 사용하면 대부분의 타입 검사 규칙이 비활성화되며 일반적으로 안전하지 않습니다. any로 타입 지정된 값을 함수에 전달하면 해당 함수 호출에 대해 타입 안전성이 상실됩니다.
예시
이 규칙에 부적절한 코드 예시:
ts
declare const anyValue: any;
function takesString(str: string): void {
console.log(str.length);
}
takesString(anyValue); // 안전하지 않음
declare function takesNumber(num: number): number;
const result = takesNumber(anyValue); // 안전하지 않음이 규칙에 적절한 코드 예시:
ts
declare const stringValue: string;
declare const numberValue: number;
declare const unknownValue: unknown;
function takesString(str: string): void {
console.log(str.length);
}
takesString(stringValue); // 안전함
// 타입 가드를 통해 안전하게 사용
if (typeof unknownValue === "string") {
takesString(unknownValue); // 타입 가드 이후 안전함
}
// 타입 확신이 있다면 타입 변환 사용
takesString(unknownValue as string); // 명시적으로 불안전하지만 의도적임사용 방법
이 규칙을 설정 파일 또는 CLI를 통해 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"typescript/no-unsafe-argument": "error"
}
}bash
oxlint --type-aware --deny typescript/no-unsafe-argument