类型推导infer

52 阅读1分钟

Typescript中的类型推导

// 想要设计一个将数组拍平的函数
function flat(source: any[]): any {
  // ...
}
// 上面的函数定义虽然能够实现函数拍平,但是出现了太多any了,不利于Typescript的类型校验,这很不TS

// 接下来看看这种
export type Flattered<T> = T extends (infer V)[] ? Flattered<V> : T

type D = Flattered<number[][][]>// D的类型是number