Vinyl
    Preparing search index...

    Type Alias MergedTupleOrArray<T>

    MergedTupleOrArray: T extends [infer V0]
        ? [Merged<V0>]
        : T extends [infer V0, infer V1]
            ? [Merged<V0>, Merged<V1>]
            : T extends [infer V0, infer V1, infer V2]
                ? [Merged<V0>, Merged<V1>, Merged<V2>]
                : T extends [infer V0, infer V1, infer V2, infer V3]
                    ? [Merged<V0>, Merged<V1>, Merged<V2>, Merged<V3>]
                    : T extends [infer V0, infer V1, infer V2, infer V3, infer V4]
                        ? [Merged<V0>, Merged<V1>, Merged<V2>, Merged<V3>, Merged<V4>]
                        : T extends any[]
                            ? Merged<T[number]>[]
                            : T extends readonly [infer V0]
                                ? readonly [Merged<V0>]
                                : T extends readonly [infer V0, infer V1]
                                    ? readonly [Merged<(...)>, Merged<(...)>]
                                    : T extends readonly [(...), (...), (...)]
                                        ? readonly [(...), (...), (...)]
                                        : T extends readonly (...)
                                            ? readonly (...)
                                            : (...) extends (...) ? (...) : (...)

    [S0, T0] & [S1, T1] cannot be converted to [S0 & S1, T0 & T1], but we can at least preserve the tuple when not intersected.

    Intersected tuples become arrays. E.g. [S0, T0] & [S1, T1] becomes Array<S0 | S1 | T0 | T1>

    Type Parameters

    • T extends readonly any[]