ts-data-forge
Version:
[](https://www.npmjs.com/package/ts-data-forge) [](https://www.npmjs.com/package/ts-data-forge) [;
*
* assert.deepStrictEqual(remainder, ['Grace', 'Katherine']);
*
* assert.isTrue(remainder.length === 2);
* }
*
* {
* const values = [1, 2, 3] as const;
*
* const remainder = Arr.rest(values);
*
* const emptyRemainder = Arr.rest([1] as const);
*
* assert.deepStrictEqual(remainder, [2, 3] as const);
*
* assert.deepStrictEqual(emptyRemainder, [] as const);
* }
* ```
*/
export declare const tail: <const Ar extends readonly unknown[]>(array: Ar) => List.Tail<Ar>;
/**
* Returns all elements of an array except the last one.
*
* @example
*
* ```ts
* const queue = ['task-1', 'task-2', 'task-3'] as const;
*
* const withoutLast = Arr.butLast(queue);
*
* assert.deepStrictEqual(withoutLast, ['task-1', 'task-2']);
*
* assert.isTrue(withoutLast.length === 2);
* ```
*/
export declare const butLast: <const Ar extends readonly unknown[]>(array: Ar) => List.ButLast<Ar>;
/**
* Takes the first N elements from an array.
*
* @example
*
* ```ts
* const values = [1, 2, 3, 4];
*
* const firstTwo = Arr.take(values, 2);
*
* const firstThree = Arr.take(3)(values);
*
* assert.deepStrictEqual(firstTwo, [1, 2]);
*
* assert.deepStrictEqual(firstThree, [1, 2, 3]);
* ```
*/
export declare function take<const Ar extends readonly unknown[], N extends SizeType.ArgArr>(array: Ar, num: N): N extends SmallUint ? List.Take<N, Ar> : N extends SizeType.ArgArrPositive ? Ar extends NonEmptyArray<unknown> ? NonEmptyArray<Ar[number]> : readonly Ar[number][] : readonly Ar[number][];
export declare function take<N extends SizeType.ArgArr>(num: N): <const Ar extends readonly unknown[]>(array: Ar) => N extends SmallUint ? List.Take<N, Ar> : N extends SizeType.ArgArrPositive ? Ar extends NonEmptyArray<unknown> ? NonEmptyArray<Ar[number]> : readonly Ar[number][] : readonly Ar[number][];
/**
* Takes the last N elements from an array.
*
* @example
*
* ```ts
* const values = [1, 2, 3, 4];
*
* const lastTwo = Arr.takeLast(values, 2);
*
* const lastThree = Arr.takeLast(3)(values);
*
* assert.deepStrictEqual(lastTwo, [3, 4]);
*
* assert.deepStrictEqual(lastThree, [2, 3, 4]);
* ```
*/
export declare function takeLast<const Ar extends readonly unknown[], N extends SizeType.ArgArr>(array: Ar, num: N): N extends SmallUint ? List.TakeLast<N, Ar> : N extends SizeType.ArgArrPositive ? Ar extends NonEmptyArray<unknown> ? NonEmptyArray<Ar[number]> : readonly Ar[number][] : readonly Ar[number][];
export declare function takeLast<N extends SizeType.ArgArr>(num: N): <const Ar extends readonly unknown[]>(array: Ar) => N extends SmallUint ? List.TakeLast<N, Ar> : N extends SizeType.ArgArrPositive ? Ar extends NonEmptyArray<unknown> ? NonEmptyArray<Ar[number]> : readonly Ar[number][] : readonly Ar[number][];
/**
* Skips the first N elements of an array.
*
* @example
*
* ```ts
* const values = ['a', 'b', 'c', 'd'] as const;
*
* const withoutFirstTwo = Arr.skip(values, 2);
*
* const withoutFirstThree = Arr.skip(3)(values);
*
* assert.deepStrictEqual(withoutFirstTwo, ['c', 'd']);
*
* assert.deepStrictEqual(withoutFirstThree, ['d']);
* ```
*/
export declare function skip<const Ar extends readonly unknown[], N extends SizeType.ArgArr>(array: Ar, num: N): N extends SmallUint ? List.Skip<N, Ar> : readonly Ar[number][];
export declare function skip<N extends SizeType.ArgArr>(num: N): <const Ar extends readonly unknown[]>(array: Ar) => N extends SmallUint ? List.Skip<N, Ar> : readonly Ar[number][];
/**
* Skips the last N elements of an array.
*
* @example
*
* ```ts
* const values = ['a', 'b', 'c', 'd'];
*
* const withoutLastTwo = Arr.skipLast(values, 2);
*
* const withoutLastThree = Arr.skipLast(3)(values);
*
* assert.deepStrictEqual(withoutLastTwo, ['a', 'b']);
*
* assert.deepStrictEqual(withoutLastThree, ['a']);
* ```
*/
export declare function skipLast<const Ar extends readonly unknown[], N extends SizeType.ArgArr>(array: Ar, num: N): N extends SmallUint ? List.SkipLast<N, Ar> : readonly Ar[number][];
export declare function skipLast<N extends SizeType.ArgArr>(num: N): <const Ar extends readonly unknown[]>(array: Ar) => N extends SmallUint ? List.SkipLast<N, Ar> : readonly Ar[number][];
/**
* Alias for `tail`.
*
* @see {@link tail}
*/
export declare const rest: <const Ar extends readonly unknown[]>(array: Ar) => List.Tail<Ar>;
/**
* Alias for `skip`.
*
* @see {@link skip}
*/
export declare const drop: typeof skip;
//# sourceMappingURL=array-utils-slicing.d.mts.map