조건부 타입 (Conditional Types)
자바스크립트의 삼항 연산자(? :)를 타입의 세계로 끌고 온 끝판왕 문법입니다. 주로 라이브러리를 만드는 개발자들이 "입력된 값에 따라 반환 타입을 다르게 주어야 할 때" 사용합니다.
// T가 문자열이면 숫자 타입을, 아니면 boolean 타입을 반환해라!
type IsString<T> = T extends string ? number : boolean;
type Result1 = IsString<"안녕하세요">; // T가 string이므로 Result1은 number 타입이 됨
type Result2 = IsString<123>; // T가 number이므로 Result2는 boolean 타입이 됨