UNPKG

@xylabs/typeof

Version:

Base functionality used throughout XY Labs TypeScript/JavaScript libraries

116 lines 9.28 kB
/** 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