Type alias Flat<T, D, C>

Flat<T, D, C>: C["length"] extends D
    ? T
    : T extends [infer F, ...(infer R)]
        ? If_Never<F> extends true
            ? [F, ...Flat<R, D, C>]
            : F extends any[]
                ? [...Flat<F, D, [...C, 1]>, ...Flat<R, D, C>]
                : [F, ...Flat<R, D, C>]
        : []

将嵌套元组展开,可以给出第二个参数表示要展开多少层,默认展开所有层

Type Parameters

  • T extends any[]

  • D extends number = -1

  • C extends any[] = []

Example

Flat<[1,[2,3]]> // [1,2,3]

Generated using TypeDoc