froebel
Version:
TypeScript utility library
8 lines (7 loc) • 711 B
TypeScript
/** Checks if `value` is truthy. Literal types are narrowed accordingly. */
export declare const truthy: <T>(value: T) => value is PickTruthy<T>;
/** Checks if `value` is falsy. Literal types are narrowed accordingly. */
export declare const falsy: <T>(value: T) => value is PickFalsy<T>;
declare type PickTruthy<T> = (true extends T ? true : never) | (T extends string ? Exclude<T, ""> : never) | (T extends number ? Exclude<T, 0> : never) | Exclude<T, undefined | null | string | number | boolean>;
declare type PickFalsy<T> = (null extends T ? null : never) | (undefined extends T ? undefined : never) | (false extends T ? false : never) | (0 extends T ? 0 : never) | ("" extends T ? "" : never);
export {};