@qntm-code/utils
Version:
A collection of useful utility functions with associated TypeScript types. All functions have been unit tested.
15 lines (14 loc) • 738 B
TypeScript
declare namespace Empty {
type String = '';
type Object = Record<string, never>;
type Array = never[];
type _Set = Set<never>;
type _Map = Map<never, never>;
}
type Empty = Empty.Array | Empty.Object | Empty.String | Empty._Set | Empty._Map;
type EmptyResult<T> = T extends string ? Empty.String : T extends any[] ? Empty.Array : T extends Set<unknown> ? Empty._Set : T extends Map<unknown, unknown> ? Empty._Map : T extends object ? Empty.Object : never;
/**
* Checks if a given value is empty
*/
export declare function isEmpty<T extends string | Set<unknown> | Map<unknown, unknown> | any[] | object | null | undefined>(value: T | Empty | null | undefined): value is EmptyResult<T> | null | undefined;
export {};