/** AtLeastNRequired -- require at least `N` keys in an object to be defined */ import { Length } from "../list"; import { Resolve } from "../type"; import { ValueOf } from "."; /** * make all keys in `O` optional * * @since 0.0.9 */ export type Partial = { [K in keyof O]?: O[K]; }; type _AtLeastNRequired = Length extends N ? Partial : ValueOf<{ [K in keyof O]: Pick & _AtLeastNRequired, N, [...Acc, never]>; }>; /** * make all keys in `O` optional, * but require at least `N` keys to be defined * * @since 0.0.9 */ export type AtLeastNDefined = Resolve<_AtLeastNRequired>; /** * make all keys in `O` optional, * but require at least one key to be defined * * @since 0.0.9 */ export type Nonempty = AtLeastNDefined; export {}; //# sourceMappingURL=partial.d.ts.map