-
-
Notifications
You must be signed in to change notification settings - Fork 679
Expand file tree
/
Copy pathhas-optional-keys.d.ts
More file actions
23 lines (17 loc) · 686 Bytes
/
has-optional-keys.d.ts
File metadata and controls
23 lines (17 loc) · 686 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import type {OptionalKeysOf} from './optional-keys-of.d.ts';
/**
Creates a type that represents `true` or `false` depending on whether the given type has any optional fields.
This is useful when you want to create an API whose behavior depends on the presence or absence of optional fields.
@example
```
import type {HasOptionalKeys, OptionalKeysOf} from 'type-fest';
type UpdateService<Entity extends object> = {
removeField: HasOptionalKeys<Entity> extends true
? (field: OptionalKeysOf<Entity>) => Promise<void>
: never;
};
```
@category Utilities
*/
export type HasOptionalKeys<BaseType extends object> = OptionalKeysOf<BaseType> extends never ? false : true;
export {};