UNPKG

typedash

Version:

modern, type-safe collection of utility functions

19 lines (18 loc) 1.07 kB
import { t as Maybe } from "./Maybe-BVpZiDsE.cjs"; //#region src/functions/take/take.d.ts /** * Returns the first `count` items from `array`. * @param array The array to take items from. * @param count The number of items to take. * @returns The first `count` items from `array`. * @example * ```ts * take([1, 2, 3, 4, 5], 3) // [1, 2, 3] * ``` */ declare function take<const T extends readonly unknown[], C extends number>(array: Maybe<T>, count: C): Take<T, C>; type Take<TArray extends readonly unknown[], TCount extends number> = TCount extends 0 ? [] : `${TCount}` extends `-${number}` ? [] : TArray extends readonly unknown[] ? TakeFromStart<TArray, TCount> : []; type TakeFromStart<TArray extends readonly unknown[], TCount extends number, Taken extends unknown[] = []> = TArray['length'] extends 0 ? Taken : TCount extends Taken['length'] ? Taken : TArray extends readonly [infer First, ...infer Rest] ? TakeFromStart<Rest, TCount, [...Taken, First]> : TArray[number][]; //#endregion export { take as t }; //# sourceMappingURL=take-BK-1fuX3.d.cts.map