타입스크립트 건망증
타입스크립트도 떠먹여줘야한다.
try {} catch (error) {
if (error) {
error.message; // Property 'message' does not exist on type '{}'
}
}
// unknown 타입이 if 문을 통과하여 {}타입이 됨
// {} 타입은 속성을 사용할 수 없으므로 구체적으로 타입을 주장해야함
try {} catch (error) {
if (error: Error) { // 타입 주장
error.message; // Property 'message' does not exist on type '{}'
}
}
// 타입 단언한것을 유지(기억)하기 위해 변수 사용
try {} catch (error) {
const err = error as Error; // 타입 주장한것을 변수에 기록
if (err) {
err.message; // Property 'message' does not exist on type '{}'
}
}
// Best
try {} catch (error) {
if (error instanceof Error) {
error.message; // Property 'message' does not exist on type '{}'
}
}
error는 unknown 타입
as로 강제 단언한것은 일시적임
판단한 문장에만 허용되므로 단언한 타입을 계속 기억할 수 있게 만들어야 한다.
-> 변수에 담아야 오래 기억한다.
as를 사용하지 않고 깔끔하게 타입 추론이 되는 방법이 있다면 그 방법을 사용
unknown
은 if문을 통과하면 {}
타입이 된다.
{}
타입은 속성을 사용할 수 없는 타입
Last updated