UNPKG

funval

Version:

A minimalist library for data validation using functions interfaces.

19 lines (18 loc) 973 B
export declare type AnyType = any; export declare type Primitive = string | number | symbol | boolean | null | undefined | void | bigint; export declare type FunctionType<T = AnyType, A extends Array<AnyType> = AnyType> = (...args: A) => T; export declare type ObjectProperty = string | number | symbol; export declare type ResolvedValue<T> = T extends PromiseLike<infer R> ? R : T; declare type OptionalKeys<T> = Exclude<{ [K in keyof T]: undefined extends T[K] ? AnyType extends T[K] ? never : K : never; }[keyof T], undefined>; declare type RequiredKeys<T> = Exclude<keyof T, OptionalKeys<T>>; export declare type AllowPartial<T> = T extends object ? OptionalKeys<T> extends never ? { [K in RequiredKeys<T>]: AllowPartial<T[K]>; } : { [K in RequiredKeys<T>]: AllowPartial<Exclude<T[K], undefined>>; } & { [K in OptionalKeys<T>]?: AllowPartial<T[K]>; } : T; export declare function isPromiseLike(value: unknown): value is PromiseLike<AnyType>; export {};