/** Extracts only the keys that will be required * * Removes optional, as well as unbounded (aka 'string') * * @example ``` RequiredKeys<{ opt?: string; bob: string; alice: number; [k: string]: string | number | undefined; }> // = 'bob' | 'alice' ``` */ export type RequiredKeys = Values>; type OnlyRequired = { [K in keyof T as string extends K ? never : K]-?: {} extends Pick ? never : K; }; type Values = T[Exclude]; export {}; //# sourceMappingURL=utiltypes.d.ts.map