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