type Identity> = (...args: Args) => T; type Singleton = T extends Array ? T[0] : T; type Identities> = { [K in keyof T]: Identity; }; type IdentityRecords, Features> = { [K in keyof T]: Record< string, Features extends 'nullable' ? Identity, Args> | null : Identity, Args> >; }; export type PartialBy = Omit & Partial>; export type IdentityBy> = Omit< T, K > & Identities, ARGS>; type IdentityFeatures = 'nullable' | ''; export type IdentityRecordBy< T, K extends keyof T, Args extends Array, Features extends IdentityFeatures = '', > = Omit & IdentityRecords, Args, Features>;