在 TypeScript 中,条件类型(Conditional Types)是一种基于类型判断条件返回不同类型的高级类型特性。它允许开发者根据输入类型做出动态的类型选择。
SomeType extends OtherType ? TrueType : FalseType
type Absolute<T> = `T` extends number ? number : never;
type A = Absolute<-5>; // type A = number
type B = Absolute<'hello'>; // type B = never
type Flatten<T> = T extends Array<infer U> ? U : T;
type A = Flatten<number[]>; // type A = number
type B = Flatten<string>; // type B = string
type C = Flatten<(number | string)[]>; // type C = number | string
总的来说,条件类型是 TypeScript 中一个非常强大的特性,它可以帮助开发者创建出更加灵活和复杂的类型系统。通过合理使用条件类型,开发者可以编写出更加健壮和可维护的代码。