2.7.2 unknown
두 번째 타입은 unknown입니다. unknown은 any와 비슷하게 모든 타입을 대입할 수 있지만, 그 후 어떠한 동작도 수행할 수 없게 됩니다.
const a: unknown = 'hello';
const b: unknown = 'world';
a + b;
// 'a' is of type 'unknown'.
// 'b' is of type 'unknown'.
a.slice();
// 'a' is of type 'unknown'.
unknown인 a와 b 변수를 사용한 모든 동작이 에러로 처리됩니다. 그러므로 any처럼 모든 동작을 허용해서 타입 검사가 되지 않는 상황은 발생하지 않습니다.
앞의 예제처럼 unknown 타입을 직접 표시할 경우는 거의 없고, 대부분 try catch문에서 unknown을 보게 됩니다.
try {
} catch (e) {
console.log(e.message);
}
// var e: unknown
// 'e' is of type 'unknown'.