type-fest/source/if-empty-object.d.ts
ash fa1c3f3cf4
Add SingleKeyObject and IfEmptyObject types (#849)
Co-authored-by: Sindre Sorhus <sindresorhus@gmail.com>
2024-03-31 14:57:55 +09:00

27 lines
562 B
TypeScript

import type {IsEmptyObject} from './empty-object';
/**
An if-else-like type that resolves depending on whether the given type is `{}`.
@see {@link IsEmptyObject}
@example
```
import type {IfEmptyObject} from 'type-fest';
type ShouldBeTrue = IfEmptyObject<{}>;
//=> true
type ShouldBeBar = IfEmptyObject<{key: any}, 'foo', 'bar'>;
//=> 'bar'
```
@category Type Guard
@category Utilities
*/
export type IfEmptyObject<
T,
TypeIfEmptyObject = true,
TypeIfNotEmptyObject = false,
> = IsEmptyObject<T> extends true ? TypeIfEmptyObject : TypeIfNotEmptyObject;