any와 unknown - 타입스크립트 기본
Any 타입
// any (모든 누구나)
// 특정 변수의 타입을 우리가 확실히 모를때 사용
// any 타입에 모든 변수 넣을 수 있고 모든 타입에 any 타입 변수 넣을 수 있다.
// any 타입을 쓴다는 것은 타입스크립트가 갖고 있는 이점을 다 포기한다는 것과 같음
let anyVar: any = 10;
anyVar = "hello";
anyVar = {};
anyVar = () => {};
anyVar.toUpperCase();
anyVar.toFixed();
let num : number = 10;
num = anyVar;
unknown 타입
let num : number = 10;
num = anyVar;
// unknown
// any와 똑같지만 차이점은 모든값을 저장을 할 수 있지만 다른 타입에 unknown타입의 값을 넣을 수 없다.
// 또한 메서드를 쓰는 것 허용 안됨, 사칙 연산도 안됨
let unknownVar: unknown;
unknownVar = "";
unknownVar = 1;
unknownVar = () => {};
// 이런식으로 number타입임을 확실히 밝혀주었을 때만 unknown타입의 변수를 number타입으로 정제해줄 수 있다.
if(typeof unknownVar === 'number'){
num = unknownVar;
}