import { ISchema } from './ISchema'; import { ToOptional } from './typing'; /** * @public */ export interface Spec { [key: string]: ISchema; } /** * @public */ export type MapResult = ToOptional<{ [K in keyof T]: T[K] extends ISchema ? ReturnType : T[K] extends Spec ? MapResult : never; }>; /** * @public */ export type MapResultWithOptional = ToOptional<{ [K in keyof T]?: T[K] extends ISchema ? ReturnType : T[K] extends Spec ? MapResult : never; }>;