@xylabs/typeof
Version:
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
116 lines • 9.28 kB
TypeScript
/** A function type that accepts any arguments and returns unknown. */
export type AnyFunction = (...args: unknown[]) => unknown;
/** A union of valid object key types. */
export type RecordKey = string | number | symbol;
/** Type guard that checks whether a value is undefined. */
export declare function isUndefined(value: unknown): value is undefined;
export declare function isUndefined<T>(value: T): value is Extract<T, undefined>;
/** Type guard that checks whether a value is not undefined. */
export declare function isDefined<T>(value: T): value is Exclude<T, undefined>;
/** Type guard that checks whether a value is null. */
export declare function isNull(value: unknown): value is null;
export declare function isNull<T>(value: T): value is Extract<T, null>;
/** Type guard that checks whether a value is neither undefined nor null. */
export declare function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null>;
/** Type guard that checks whether a value is undefined or null. */
export declare function isUndefinedOrNull(value: unknown): value is undefined | null;
export declare function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null>;
/** Type guard that checks whether a value is a bigint. */
export declare function isBigInt(value: unknown): value is bigint;
export declare function isBigInt<T extends bigint>(value: T): value is Extract<T, bigint>;
/** Type guard that checks whether a value is a string. */
export declare function isString(value: unknown): value is string;
export declare function isString<T extends string>(value: T): value is Extract<T, string>;
/** Type guard that checks whether a value is a number. */
export declare function isNumber(value: unknown): value is number;
export declare function isNumber<T extends number>(value: T): value is Extract<T, number>;
/** Type guard that checks whether a value is a plain object (not null and not an array). */
export declare function isObject(value: unknown): value is object;
export declare function isObject<T extends object>(value: T): value is Extract<T, object>;
/** Type guard that checks whether a value is an array. */
export declare function isArray(value: unknown): value is readonly unknown[];
export declare function isArray<T>(value: T): value is Extract<T, readonly unknown[]>;
/** Type guard that checks whether a value is a function. */
export declare function isFunction(value: unknown): value is AnyFunction;
export declare function isFunction<T extends AnyFunction>(value: T): value is Extract<T, AnyFunction>;
/** Type guard that checks whether a value is a symbol. */
export declare function isSymbol(value: unknown): value is symbol;
export declare function isSymbol<T extends symbol>(value: T): value is Extract<T, symbol>;
/** Type guard that checks whether a value is an object with no own keys. */
export declare function isEmptyObject(value: unknown): value is {};
export declare function isEmptyObject<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>;
/** Type guard that checks whether a value is an empty string. */
export declare function isEmptyString(value: unknown): value is '';
export declare function isEmptyString<T extends string>(value: T): value is Extract<T, ''>;
/** Type guard that checks whether a value is an empty array. */
export declare function isEmptyArray(value: unknown): value is [];
export declare function isEmptyArray<T extends unknown[]>(value: T): value is Extract<T, unknown[]>;
/** Type guard that checks whether a value is a non-empty array. */
export declare function isPopulatedArray(value: unknown): value is readonly unknown[];
export declare function isPopulatedArray<T extends unknown[]>(value: T): value is Extract<T, readonly unknown[]>;
/** Type guard that checks whether a value is empty (empty string, empty array, or empty object). */
export declare function isEmpty<T>(value: unknown): value is T;
export declare function isEmpty<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>;
export declare function isEmpty<T extends unknown[]>(value: T): value is Extract<T, never[]>;
/** Type guard that checks whether a value is falsy (0, null, undefined, false, '', or 0n). */
export declare function isFalsy<T>(value: T): value is Extract<T, 0 | null | undefined | false | '' | 0n>;
export declare function isFalsy<T extends boolean>(value: T): value is Extract<T, false>;
export declare function isFalsy<T extends number>(value: T): value is Extract<T, 0>;
export declare function isFalsy<T extends bigint>(value: T): value is Extract<T, 0n>;
export declare function isFalsy<T extends null>(value: T): value is Extract<T, null>;
export declare function isFalsy<T extends undefined>(value: T): value is Extract<T, undefined>;
export declare function isFalsy<T extends string>(value: T): value is Extract<T, ''>;
/** Type guard that checks whether a value is truthy (not 0, null, undefined, false, '', or 0n). */
export declare function isTruthy<T>(value: T): value is Exclude<T, 0 | null | undefined | false | '' | 0n>;
export declare function isTruthy<T extends boolean>(value: T): value is Extract<T, true>;
export declare function isTruthy<T extends number>(value: T): value is Extract<T, number>;
export declare function isTruthy<T extends bigint>(value: T): value is Extract<T, bigint>;
export declare function isTruthy<T extends null>(value: T): value is Extract<T, null>;
export declare function isTruthy<T extends undefined>(value: T): value is Extract<T, undefined>;
export declare function isTruthy<T extends string>(value: T): value is Extract<T, string>;
/** Type guard that checks whether a value is a boolean. */
export declare function isBoolean(value: unknown): value is boolean;
export declare function isBoolean<T extends boolean>(value: T): value is Extract<T, boolean>;
/** Type guard that checks whether a value is a string that can be parsed as a valid date. */
export declare function isDateString(value: unknown): value is string;
export declare function isDateString<T>(value: T): value is Extract<T, string>;
/** Type guard that checks whether a value is a Date instance. */
export declare function isDate(value: unknown): value is Date;
export declare function isDate<T>(value: T): value is Extract<T, Date>;
/** Type guard that checks whether a value is a RegExp instance. */
export declare function isRegExp(value: unknown): value is RegExp;
export declare function isRegExp<T extends RegExp>(value: T): value is Extract<T, RegExp>;
/** Type guard that checks whether a value is an Error instance. */
export declare function isError(value: unknown): value is Error;
export declare function isError<T>(value: T): value is Extract<T, Error>;
/** Type guard that checks whether a value is a Promise instance. */
export declare function isPromise(value: unknown): value is Promise<unknown>;
export declare function isPromise<T>(value: T): value is Extract<T, Promise<unknown>>;
/** Type guard that checks whether a value is promise-like (has a `then` method). */
export declare function isPromiseLike(value: unknown): value is Promise<unknown>;
export declare function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>>;
/** Type guard that checks whether a value is a Map instance. */
export declare function isMap(value: unknown): value is Map<unknown, unknown>;
export declare function isMap<K, V, T extends Map<K, V>>(value: T): value is Extract<T, Map<K, V>>;
/** Type guard that checks whether a value is an ArrayBufferView (e.g., TypedArray or DataView). */
export declare function isArrayBufferView(value: unknown): value is ArrayBufferView;
export declare function isArrayBufferView<T extends ArrayBufferView>(value: T): value is Extract<T, ArrayBufferView>;
/** Type guard that checks whether a value is a Set instance. */
export declare function isSet(value: unknown): value is Set<unknown>;
export declare function isSet<T extends Set<unknown>>(value: unknown | Set<T>): value is Extract<T, Set<unknown>>;
/** Type guard that checks whether a value is a WeakMap instance. */
export declare function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown>;
export declare function isWeakMap<K extends WeakKey, V, T extends WeakMap<K, V>>(value: T): value is Extract<T, WeakMap<K, V>>;
/** Type guard that checks whether a value is a WeakSet instance. */
export declare function isWeakSet(value: unknown): value is WeakSet<WeakKey>;
export declare function isWeakSet<K extends WeakKey, T extends WeakSet<K>>(value: T): value is Extract<T, WeakSet<K>>;
/** Type guard that checks whether a value is a DataView instance. */
export declare function isDataView(value: unknown): value is DataView;
export declare function isDataView<T>(value: T): value is Extract<T, DataView>;
/** Type guard that checks whether a value is a Blob instance. */
export declare function isBlob(value: unknown): value is Blob;
export declare function isBlob<T extends Blob>(value: T): value is Extract<T, Blob>;
/** Type guard that checks whether a value is a File instance. */
export declare function isFile(value: unknown): value is File;
export declare function isFile<T extends File>(value: T): value is Extract<T, File>;
//# sourceMappingURL=is.d.ts.map