Any는 모든 타입을 나타내어 편리하게 쓸수 있으나 현업이나 실제 구현을 하게 되면 그 위험성을 실감할 수 있게 된다.

Any의 정의

-어떤 타입도 할당 가능한 타입을 any라고 부른다.

Explain Any

보통 TypeScript에서는 명시적으로 데이터의 유형들을 설정해 사용하는 정적형 지정 언어로 타입을 지정하여 사용하는 것이 권장이 된다.

하지만 Any는

절대로 타입 체커에 걸리지 않고 또한 오류를 발생하는데 1등 공신일 가능성이 높다.

다음 예제를 살펴보자

let product_id:any = 123451; 

let age:any = 1;

product_id와 age가 number를 지칭하는지, string을 나타내는지 알 길이 없다. any는 모든 타입을 총 지칭하는 말이기 때문이다. 그러므로 나중에 product_id에 number만 와야 하는데 string 타입이 온다던지 그 반대가 발생해도 타입 체커는 “any네? 모든 타입 허용하였으니 딱히 문제 안되네 통과!” 라고 생각하여 오류를 나타내지 않는다.

any 타입에서는 언어 완성 서비스나 관련 안내가 나오기 않는다.

any는 모든 변수나 연산자에 해당 될 수 있는 타입이기 때문에 따로 안내를 하지 않는다. 확실하게 타입을 표기하자.

any 타입은 따로 리팩토링 할때 버그를 유발한다.

내가 개인적으로 react에 나와 있는 TicTacTo를 JavaScript에서 TypeScript로 리팩토링 할 당시 무조건 반사로 any를 남발하였다. 그러다 보니 버그가 발생하는 경우가 여럿 존재하였다.