UNPKG

pure-parse

Version:

Strongly typed validation library that decouples type aliases from validation logic

21 lines (20 loc) 852 B
import { Parser } from './Parser'; /** * Construct parsers for tuples. * If the `data` has more elements than expected, the extra elements are omitted from the result. * @example * Parse 2D coordinates: * ```ts * const parseVector2 = tuple([parseNumber, parseNumber]) * parseVector2([12.5, 45.0]) // -> ParseSuccess<[number, number]> * ``` * @example * Declare the type explicitly with type arguments: * ```ts * const parseVector2 = tuple<[number, number]>([parseNumber, parseNumber]) * parseVector2([12.5, 45.0]) // -> ParseSuccess<[number, number]> * ``` * @param parsers an array of parsers. Each parser validates the corresponding element in the data tuple. * @returns a parser that validates tuples. */ export declare const tuple: <T extends readonly [...unknown[]]>(parsers: [...{ [K in keyof T]: Parser<T[K]>; }]) => Parser<T>;