UNPKG

shapeit

Version:

Object validation tools for Javascript and, specially, Typescript

29 lines (28 loc) 1.2 kB
import { LiterableName, Literable, LiteralDescriptor, FromLiteralDescriptor, Template, Concat } from '../types/literals'; import { FromPrimitive } from '../types/utils'; /** * Creates a literal descriptor from type names or constant unions * * @example * $('boolean'); // Equivalent to `${boolean}` in a literal type * * @example * * $('boolean', $$(10, 11)); // Equivalent to `${boolean | 10 | 11}` in a literal type */ export declare function $<T extends (LiterableName | LiteralDescriptor)[]>(...values: T): LiteralDescriptor<T[number] extends LiterableName ? FromPrimitive<T[number]> : FromLiteralDescriptor<T[number]>>; /** * Creates a literal descriptor from a constant union * * @example * $$('id', 'ID'); // Equivalent to `${'id' | 'ID'}` in a literal type */ export declare function $$<T extends Literable[]>(...values: T): LiteralDescriptor<T[number]>; /** * Creates a literal descriptor from a literal template. * * @example * $$$('a', $('number')); // Equivalent to `${`a${number}`}` in a literal type */ export declare function $$$<T extends Template>(...template: T): LiteralDescriptor<Concat<T>>; export declare function valueToRegex(value: Literable): string;