← Back to NOTES 🌰 ← Back to Effective TypeScript
의도치 않은 타입 안정성 손실을 피하기 위해 any 사용 범위를 최소한으로 좁혀야 한다. 함수의 반환 타입이 any면 타입 안정성이 나빠지므로 any를 반환하면 절대 안 된다. 강제로 타입 오류를 제거하려면 any 대신 @ts-ignore를 사용하는 것이 더 낫다.
타입 오류를 해결하기 위해 any를 사용할 때 두 가지 방법이 있다:
방법 1: 변수에 any 타입 할당
const x: any = returnsFoo();
방법 2: 값 자체를 any로 단언
const x = returnsFoo();
processBar(x as any);
두 번째 방법이 더 나은 이유: any의 영향 범위가 함수 호출 지점으로 제한됨
전파되는 any:
function f1() {
const x: any = returnFoo();
processbar(x);
return x; // any 반환
}
function g() {
const foo = f1(); // foo도 any가 됨
foo.fooMethod(); // 타입 체크 안 됨
}