UNPKG

type-plus

Version:
40 lines (37 loc) 1.1 kB
import type { PadStart as PadStartTuple } from '../tuple/tuple_plus.pad_start.js' import type { PadStart as PadStartArray } from './array_plus.pad_start.js' /** * Pads the start of an array or tuple with `PadWith`. * * ⚗️ *transform* * * @example * ```ts * // Padding array * PadStart<number[], 1, string> // [string, ...number[]] * * // Ignore if the type is compatible * PadStart<number[], 2, number> // number[] * PadStart<number[], 3, 1> // number[] * * // Padding tuple * PadStart<[1, 2, 3], 5, 0> // [0, 0, 1, 2, 3] * * // Ignore if MaxLength is less than the length of the tuple * PadStart<[1, 2, 3], 5, 0> // [0, 0, 1, 2, 3] * * // Default to unknown * PadStart<[1, 2, 3], 5> // [unknown, unknown, 1, 2, 3] * ``` */ export type PadStart< A extends unknown[], MaxLength extends number, PadWith = unknown > = number extends A['length'] ? PadStartArray<A, MaxLength, PadWith> : PadStartTuple<A, MaxLength, PadWith> /** * @deprecated use PadStart instead */ export type PadLeft<A extends any[], Total extends number, PadWith = any> = PadStart<A, Total, PadWith>