Type Alias TakeFirstNElements<T, N, Result>

TakeFirstNElements: Result["length"] extends N
    ? Result
    : T extends [infer First, ...(infer Rest)]
        ? TakeFirstNElements<Rest, N, [...Result, First]>
        : Result

Takes the first N elements from a tuple type.

Type Parameters

  • T extends any[]

    The tuple type to take elements from.

  • N extends number

    The number of elements to take.

  • Result extends any[] = []

    The result type, defaulting to an empty array.

type Original = TakeFirstNElements<[1, 2, 3, 4], 2>; // [1, 2]