import { curryN } from "@unboxing/function"; import { takeArray } from "./take"; interface DropLast { (n: number, xs: string): string; (n: number, xs: ArrayLike): T[]; (n: number): { (xs: string): string; (xs: ArrayLike): T[]; }; } /** * Returns a list containing all but the last `n` elements of the given `list`. */ export const dropArrayLast = curryN(2, (n: number, xs: ArrayLike) => takeArray(n < xs.length ? xs.length - n : 0, xs)) as DropLast