froebel
Version:
TypeScript utility library
15 lines (14 loc) • 653 B
TypeScript
/** Checks if `value` is nullish. Literal types are narrowed accordingly. */
export declare const nullish: <T>(value: T) => value is Nullish<T>;
declare type Nullish<T> = PickNullish<T> extends never ? Extract<T, undefined | null> : PickNullish<T>;
declare type PickNullish<T> = (null extends T ? null : never) | (undefined extends T ? undefined : never);
/**
* Checks if `value` is not nullish. Literal types are narrowed accordingly.
*
* @example
* ```
* const nums = (...values: (number | undefined)[]): number[] => values.filter(notNullish)
* ```
*/
export declare const notNullish: <T>(value: T | null | undefined) => value is T;
export {};