Skip to content
← Back to rules

typescript/no-explicit-any 제한

🛠️ An auto-fix is available for this rule for some violations.

작동 방식

any 타입의 명시적 사용을 금지합니다.

왜 나쁜가요?

TypeScript의 any 타입은 타입 시스템에서 벗어나는 위험한 "탈출구"입니다. any를 사용하면 많은 타입 검사 규칙이 비활성화되며, 일반적으로 마지막 수단이나 코드 프로토타이핑 시에만 사용하는 것이 좋습니다. 이 규칙은 any 키워드를 타입 주석으로 명시적으로 사용할 경우에 경고합니다.

TypeScript의 --noImplicitAny 컴파일러 옵션은 암시적인 any를 막지만, 이 규칙과 같이 any를 명시적으로 사용하는 것을 차단하지는 않습니다.

예시

이 규칙에 부적절한 코드 예시:

typescript
const age: any = "열곱 일";
const ages: any[] = ["열곱 일"];
const ages: Array<any> = ["열곱 일"];
function greet(): any {}
function greet(): any[] {}
function greet(): Array<any> {}
function greet(): Array<Array<any>> {}
function greet(param: Array<any>): string {}
function greet(param: Array<any>): Array<any> {}

이 규칙에 적절한 코드 예시:

typescript
const age: number = 17;
const ages: number[] = [17];
const ages: Array<number> = [17];
function greet(): string {}
function greet(): string[] {}
function greet(): Array<string> {}
function greet(): Array<Array<string>> {}
function greet(param: Array<string>): string {}
function greet(param: Array<string>): Array<string> {}

구성

이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.

fixToUnknown

type: boolean

기본값: false

any 타입을 unknown 타입으로 변환하는 자동 수정을 활성화할지 여부.

ignoreRestArgs

type: boolean

기본값: false

나머지 매개변수 배열을 무시할지 여부.

사용 방법

구성 파일 또는 CLI를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "rules": {
    "typescript/no-explicit-any": "error"
  }
}
bash
oxlint --deny typescript/no-explicit-any

참고 자료