UNPKG

ts-std-lib

Version:
125 lines (124 loc) 3.91 kB
import { AbstractConstructor } from './Constructor'; import { Primitive } from './Primitive'; import { AsyncFunction } from './AsyncFunction'; /** * Extended types from `typeof` */ export declare type PrimitiveType = 'undefined' | 'null' | 'boolean' | 'number' | 'bigint' | 'string' | 'symbol' | 'function' | 'array' | 'object'; /** * For runtime type operations */ export declare class Type { /** * Improved `typeof value` function, accounts for null and arrays. * @param value The value to test. */ static of(value: unknown): PrimitiveType; /** * Check if a value is an instance of a type * @param constructor The type * @param value The value */ static isInstanceOf<T>(constructor: AbstractConstructor<T>, value: any): value is T; /** * Check if a value is null * @param value The value */ static isNull(value: any): value is null; /** * Check if a value is undefined * @param value The value */ static isUndefined(value: any): value is undefined; /** * Check if a value is a boolean * @param value The value */ static isBoolean(value: any): value is boolean; /** * Check if a value is a number * @param value The value */ static isNumber(value: any): value is number; /** * Check if a value is a BigInt * @param value The value */ static isBigInt(value: any): value is BigInt; /** * Check if a value is a string * @param value The object */ static isString(value: any): value is string; /** * Check if a value is a function * @param value The value */ static isFunction(value: any): value is Function; /** * Check if a value is a symbol * @param value The value */ static isSymbol(value: any): value is symbol; /** * Check if a value is a generator function * @param value The value */ static isGeneratorFunction(value: any): value is GeneratorFunction; /** * Check if a value is an async function * @param value The value */ static isAsyncFunction(value: any): value is AsyncFunction<any>; /** * Check if a value is a promise * @param value The value */ static isPromise(value: any): value is Promise<any>; /** * Check if a value is a proxy * @param value The value */ static isProxy(value: any): value is typeof Proxy; /** * Check if a value is a regular expression * @param value The value */ static isRegExp(value: any): value is RegExp; /** * Check if a value is an iterable * @param value The value */ static isIterable(value: any): value is Iterable<any>; /** * Check if a value is an async iterable * @param value The value */ static isAsyncIterable(value: any): value is AsyncIterable<any>; /** * Check if a value is an array * @param value The value */ static isArray(value: unknown): value is ReadonlyArray<any>; /** * Check if a value is array like * @param value The value */ static isArrayLike(value: unknown): value is ArrayLike<any>; /** * Check if a value is a non-null object * @param value The value */ static isObject(value: unknown): value is NonNullable<object>; /** * Check if a value is a class * @param value The value */ static isClass(value: unknown): value is object; /** * Check if an object is a primitive * @param value The value */ static isPrimitive(value: unknown): value is Primitive; static hasKeysOf<T extends object>(value: unknown, expectedKeys: ReadonlyArray<keyof T> | ReadonlyMap<keyof T, PrimitiveType>): value is T; }