← Back to NOTES 🌰 ← Back to Effective TypeScript

← 아이템 37 - 공식 명칭에는 상표를 붙이기

핵심 요약

의도치 않은 타입 안정성 손실을 피하기 위해 any 사용 범위를 최소한으로 좁혀야 한다. 함수의 반환 타입이 any면 타입 안정성이 나빠지므로 any를 반환하면 절대 안 된다. 강제로 타입 오류를 제거하려면 any 대신 @ts-ignore를 사용하는 것이 더 낫다.

자세한 내용

any 사용의 두 가지 방법

타입 오류를 해결하기 위해 any를 사용할 때 두 가지 방법이 있다:

방법 1: 변수에 any 타입 할당

const x: any = returnsFoo();

방법 2: 값 자체를 any로 단언

const x = returnsFoo();
processBar(x as any);

두 번째 방법이 더 나은 이유: any의 영향 범위가 함수 호출 지점으로 제한됨

함수 반환 타입이 any일 때의 문제

전파되는 any:

function f1() {
  const x: any = returnFoo();
  processbar(x);
  return x; // any 반환
}

function g() {
  const foo = f1(); // foo도 any가 됨
  foo.fooMethod(); // 타입 체크 안 됨
}