UNPKG

type-plus

Version:
18 lines 793 B
import type { IsTuple } from '../tuple/tuple_type.js'; /** * Returns an array of key-value pairs for every entry in the array or tuple. * * Note that this is not the same as `Array.entries(A)`, * which returns an iterable interator. * * @example * ```ts * ArrayPlus.Entries<Array<string | number>> // Array<[number, string | number]> * ArrayPlus.Entries<[1, 2, 3]> // [[0, 1], [1, 2], [2, 3]] * ``` */ export type Entries<A extends unknown[]> = IsTuple<A, Entries.Device<A, []>, A extends Array<infer T> ? Array<[number, T]> : never>; export declare namespace Entries { type Device<A extends unknown[], R extends unknown[]> = A['length'] extends 0 ? R : A extends [...infer F, infer N] ? Device<F, [[F['length'], N], ...R]> : never; } //# sourceMappingURL=array.entries.d.ts.map