조건부 타입
- 조건부 타입은 extends와 삼항 연산자를 이용해 조건에 따라 각각 다른 타입을 정의하도록 돕는 문법
➡️ 기본틀
type A = number extends string ? number : string;
➡️ 조건식에 객체 타입
type ObjA = {
a: number;
};
type ObjB = {
a: number;
b: number;
};
type B = ObjB extends ObjA ? number : string;
➡️ 제네릭과 조건부 타입
type StringNumberSwitch<T> = T extends number ? string: number;
let varA : StringNumberSwitch<number>
let varB : StringNumberSwitch<string>
➡️ 예제 -> 나중에 강의보고 다시 정리
function removeSpaces(text: string | undefined | null) {
if (typeof text === "string") {
return text.replaceAll(" ", "");
} else {
return undefined;
}
}
let result = removeSpaces("hi im winterlood");