UNPKG

@data-client/rest

Version:

Quickly define typed REST resources and endpoints

21 lines 537 B
/** 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<T> = Values<OnlyRequired<T>>; type OnlyRequired<T> = { [K in keyof T as string extends K ? never : K]-?: {} extends Pick<T, K> ? never : K; }; type Values<T> = T[Exclude<keyof T, number>]; export {}; //# sourceMappingURL=utiltypes.d.ts.map