typescripttype-guardstype-narrowing
TypeScript 타입 가드 - 런타임 타입 체크와 타입 좁히기
조회 0
TypeScript 타입 가드는 런타임에 타입을 체크하여 타입을 좁혀(narrow) 타입 안정성을 보장합니다.
이 글에서는 typeof, instanceof, 커스텀 타입 가드 등을 정리합니다.
1. typeof 타입 가드
function processValue(value: string | number) {
if (typeof value === "string") {
// 여기서 value는 string 타입
console.log(value.toUpperCase());
} else {
// 여기서 value는 number 타입
console.log(value.toFixed(2));
}
}
typeof로 기본 타입을 체크할 수 있습니다.
2. instanceof 타입 가드
class Dog {
bark() {
console.log("멍멍");
}
}
class Cat {
meow() {
console.log("야옹");
}
}
function makeSound(animal: Dog | Cat) {
if (animal instanceof Dog) {
animal.bark(); // ✅ OK
} {
animal.();
}
}