types-helpers
Version:
Librería de utilidades avanzadas para tipos en TypeScript
10 lines (9 loc) • 441 B
TypeScript
import { IsPrimitive } from "../flatten/IsPrimitive";
import { MergeAll } from "../transform/MergeAll";
type ValidatorsHelper<T, P extends string = ""> = {
[K in keyof T]: IsPrimitive<T[K]> extends true ? {
[Key in `${P}${K & string}`]: (value: T[K]) => boolean;
} : T[K] extends object ? ValidatorsHelper<T[K], `${P}${K & string}.`> : never;
}[keyof T];
export type Validators<T> = MergeAll<ValidatorsHelper<T>>;
export {};