type-fest/source/has-readonly-keys.d.ts
Trevor Florence a8d6ad0f79
Add HasReadonlyKeys and HasWritableKeys types (#640)
Co-authored-by: Sindre Sorhus <sindresorhus@gmail.com>
2023-07-09 13:41:10 +02:00

22 lines
667 B
TypeScript

import type {ReadonlyKeysOf} from './readonly-keys-of';
/**
Creates a type that represents `true` or `false` depending on whether the given type has any readonly fields.
This is useful when you want to create an API whose behavior depends on the presence or absence of readonly fields.
@example
```
import type {HasReadonlyKeys, ReadonlyKeysOf} from 'type-fest';
type UpdateService<Entity extends object> = {
removeField: HasReadonlyKeys<Entity> extends true
? (field: ReadonlyKeysOf<Entity>) => Promise<void>
: never
}
```
@category Utilities
*/
export type HasReadonlyKeys<BaseType extends object> = ReadonlyKeysOf<BaseType> extends never ? false : true;