단어 의미 그대로 모든 타입을 허용할 수 있는 타입이다.
타입체크를 '비활성화' 시켜버린다.
any를 사용할 경우 타입스크립트의 보호를 받을 수 없다.
any를 무분별하게 사용할 경우 타입스크립트의 장점이 사라질 수 있다.
const arr1 : any[] = [10, 20, 30];
const arr2 : any[] = ['a', 'b', 'c'];
console.log(arr1.concat(arr2));
any로 인해 타입스크립트에서는 불가능한 코드를 구현할 수 있다.
변수의 타입을 미리 알지 못할 때 사용한다.
unknown 타입을 사용하게 되면 타입 확인 이후 어떠한 작업이 실행되어야 한다.
any 타입보다 안정적으로 사용할 수 있다.
const a : unknown;
if(typeof(a) === "number") {
let sum = a + 10;
}
else if(typeof(a) === "string") {
let UPR = a.toUpperCase();
}
let sum = a + 10; // error
정확한 타입을 알지 못해 unknown이라는 타입으로 지정했을 때 특정 작업을 수행하려면 그 작업에 부합한 타입이 맞는지 타입 체크를 먼저 해주어야 한다.
타입 체크 없이 특정 작업을 수행할 경우 기본 타입은 unknown타입으로 되어있기 때문에 해당 작업을 수행할 수 없다.
참고
노마드코더