unknown 타입인 e를 Error 타입으로 강제 지정했습니다. 그 후에는 e가 Error로 인식되어 관련 기능이 동작합니다.
또 다른 Type Assertion 방법으로는 <>을 사용하는 방법이 있습니다. 배열에서 사용했던 <>과는 다른 의미입니다(참고로 다음 코드를 에러 없이 사용하려면 TS Config 메뉴에서 JSX 옵션이 None이어야 합니다).
try {
} catch (e) {
const error = <Error>e;
console.log(error.message);
}
이 방식은 나중에 배울 React의 JSX와 충돌하므로 <> 대신 as로 주장하는 것을 권장합니다.
또한, 항상 as 연산자를 사용해서 다른 타입으로 주장할 수 있는 것은 아닙니다.
const a: number = '123' as number;
// Conversion of type 'string' to type 'number' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.