타입 좁히기
조건문등을 이용하여 넓은 타입에서 좁은 타입으로 타입을 상황에 따라 좁히는 방법
function func(value: number | string) {
value.toFixed(); // type error
value.toUpperCase();
}
// 타입가드를 이용하여 타입 좁히기
function fuc(value: number | string) {
if (typeof value === "number") {
return value.toFixed();
}
if (typeof value === "string") {
return value.toUpperCase();
}
}
클래스
function func(value: number | string | Date | null) {
if (typeof value === "number") {
console.log(value.toFixed());
} else if (typeof value === "string") {
console.log(value.toUpperCase());
} else if (value instanceof Date) {
console.log(value.getTime());
}
}
직접 만든 타입
type Person = {
name: string;
age: number;
};
function func(value: number | string | Date | null | Person) {
if (typeof value === "number") {
console.log(value.toFixed());
} else if (typeof value === "string") {
console.log(value.toUpperCase());
} else if (value instanceof Date) {
console.log(value.getTime());
} else if (value && "age" in value) {
console.log(`${value.name}은 ${value.age}살 입니다`);
}
}
타입가드
조건문과 함께 사용해 타입을 좁히는 표현
typeof
instanceof
in
Last updated