컨티셔널 타입
SomeType extends OtherType ? TrueType : FalseType;
조건에 따라 타입을 다르게 지정할 수 있다.
interface Animal { live(): void; } interface Dog extends Animal { woof(): void; } type Example1 = Dog extends Animal ? number : string; // ^ = type Example1 = number type Example2 = RegExp extends Animal ? number : string; // ^ = type Example2 = string