Type Alias HasOptionalKeys<BaseType>

HasOptionalKeys: OptionalKeysOf<BaseType> extends never ? false : true

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.

Type Parameters

  • BaseType extends object
import type {HasOptionalKeys, OptionalKeysOf} from 'type-fest';

type UpdateService<Entity extends object> = {
removeField: HasOptionalKeys<Entity> extends true
? (field: OptionalKeysOf<Entity>) => Promise<void>
: never
}