ts-type-forge
    Preparing search index...
    ButLast: A extends readonly []
        ? readonly []
        : A extends readonly [...(infer R), unknown] ? Readonly<R> : Readonly<A>

    Gets a new readonly tuple type containing all elements of A except the last one. If A is empty or has only one element, returns readonly []. If A is a general array type, returns Readonly<A>.

    Type Parameters

    • A extends readonly unknown[]

      The readonly array or tuple type.

    A new readonly tuple type with the last element removed.

    type BL1 = Tuple.ButLast<[1, 2, 3]>; // readonly [1, 2]
    type BL2 = Tuple.ButLast<[1]>; // readonly []
    type BL3 = Tuple.ButLast<[]>; // readonly []
    type BL4 = Tuple.ButLast<readonly number[]>; // readonly number[]