any와 unknown 타입은 둘 다 모든 타입을 나타낼 수 있다는 점에서 유사하지만,
보다 안전하게 사용할 수 있는 unknown 타입을 사용하는 것을 권장합니다.
let todo: any;
todo = 'hello';
todo = 123.456;
todo = true;
todo.toLowerCase();
todo.toFixde(2);
any는 타입 검사를 수행하지 않기 때문에 해당 값에 대하여 임의의 속성에 접근할 수 있고, 함수인 것처럼 호출할 수 있고, 다른 임의 타입의 값에 할당하거나, 구문적으로 유효한 것이라면 무엇이든 할 수 있습니다.
📌 먼저 as나 사용자 정의 타입 가드를 사용해보고 꼭 필요한 경우가 아니면 any 타입은 사용하지 않는 것이 좋음
임의의 속성에 접근하면 컴파일 오류를 발생시키기 때문에 안전하게 사용할 수 있습니다.
일반적으로 unknown 타입으로 값을 저장한 후 타입 가드로 타입을 좁혀 사용합니다.
let todo: unknown;
todo = 'hello';
todo = 123.456;
todo = true;
todo.toLowerCase(); // error: 'todo' is of type 'unknown'.
todo.toFixde(2); // error: 'todo' is of type 'unknown'.