UNPKG

8.93 kBTypeScriptView Raw
1/** Determines if the passed value is of a specific type */
2export type TypeTester = (value: any) => boolean;
3/**
4 * The interface for a type mapping (key => function) to use for {@link getType}.
5 export * The key represents the name of the type. The function represents the {@link TypeTester test method}.
6 * The map should be ordered by testing preference, with more specific tests first.
7 * If a test returns true, it is selected, and the key is returned as the type.
8 */
9export interface TypeMap {
10 [type: string]: TypeTester;
11}
12export type AnyFunction = Function;
13export type Nullish = undefined | null;
14export type NonNullishObject = object;
15export type NativeClass = abstract new (...args: any) => any;
16export type AnyNumber = number | Number;
17export type AnyString = string | String;
18export type AnyBoolean = boolean | Boolean;
19export type AnyArray = any[];
20export type PlainObject = Record<any, {}>;
21export type AnyMap = Map<any, any>;
22export type AnyWeakMap = WeakMap<WeakKey, any>;
23export type EmptyArray = [];
24export type Any = boolean | number | bigint | string | null | undefined | void | symbol | object | PlainObject | AnyArray | AnyMap | AnyWeakMap;
25/** Get the object type string */
26export declare function getObjectType(value?: any): string;
27/** Checks to see if a value is an object */
28export declare function isObject(value: NonNullishObject): true;
29export declare function isObject(value?: Exclude<Any, NonNullishObject>): false;
30export declare function isObject(value?: any): value is NonNullishObject;
31/** Checks to see if a value is an object and only an object */
32export declare function isPlainObject(value: PlainObject): true;
33export declare function isPlainObject(value?: Exclude<Any, PlainObject>): false;
34export declare function isPlainObject(value?: any): value is PlainObject;
35/** Is ES6+ class */
36export declare function isNativeClass(value: NativeClass): true;
37export declare function isNativeClass(value?: Exclude<Any, NativeClass>): false;
38export declare function isNativeClass(value?: any): value is NativeClass;
39/**
40 * Is Conventional Class
41 * Looks for function with capital first letter MyClass
42 * First letter is the 9th character
43 * If changed, isClass must also be updated
44 */
45export declare function isConventionalClass(value: NativeClass): false;
46export declare function isConventionalClass(value: Function): boolean;
47export declare function isConventionalClass(value?: Exclude<Any, Function>): false;
48export declare function isConventionalClass(value?: any): value is Function;
49/** Is Class */
50export declare function isClass(value: NativeClass): true;
51export declare function isClass(value: Function): boolean;
52export declare function isClass(value?: Exclude<Any, NativeClass | Function>): false;
53export declare function isClass(value?: any): value is NativeClass | Function;
54/** Checks to see if a value is an error */
55export declare function isError(value: Error): true;
56export declare function isError(value?: Exclude<Any, Error>): false;
57export declare function isError(value?: any): value is Error;
58/** Checks to see if a value is a date */
59export declare function isDate(value: Date): true;
60export declare function isDate(value?: Exclude<Any, Date>): false;
61export declare function isDate(value?: any): value is Date;
62/** Checks to see if a value is an arguments object */
63export declare function isArguments(value: IArguments): true;
64export declare function isArguments(value?: Exclude<Any, IArguments>): false;
65export declare function isArguments(value?: any): value is IArguments;
66/** Checks to see if a value is a function but not an asynchronous function */
67export declare function isSyncFunction(value: Function): boolean;
68export declare function isSyncFunction(value?: Exclude<Any, Function>): false;
69export declare function isSyncFunction(value?: any): value is Function;
70/** Checks to see if a value is an asynchronous function */
71export declare function isAsyncFunction(value: Function): boolean;
72export declare function isAsyncFunction(value?: Exclude<Any, Function>): false;
73export declare function isAsyncFunction(value?: any): value is Function;
74/** Checks to see if a value is a function */
75export declare function isFunction(value: Function): true;
76export declare function isFunction(value?: Exclude<Any, Function>): false;
77export declare function isFunction(value?: any): value is Function;
78/** Checks to see if a value is an regex */
79export declare function isRegExp(value: RegExp): true;
80export declare function isRegExp(value?: Exclude<Any, RegExp>): false;
81export declare function isRegExp(value?: any): value is RegExp;
82/** Checks to see if a value is an array */
83export declare function isArray(value: AnyArray): true;
84export declare function isArray(value?: Exclude<Any, AnyArray>): false;
85export declare function isArray(value?: any): value is AnyArray;
86/** Checks to see if a value is a number */
87export declare function isNumber(value: AnyNumber): true;
88export declare function isNumber(value?: Exclude<Any, AnyNumber>): false;
89export declare function isNumber(value?: any): value is AnyNumber;
90/** Checks to see if a value is a string */
91export declare function isString(value: AnyString): true;
92export declare function isString(value?: Exclude<Any, AnyString>): false;
93export declare function isString(value?: any): value is AnyString;
94/** Checks to see if a value is a boolean */
95export declare function isBoolean(value: AnyBoolean): true;
96export declare function isBoolean(value?: Exclude<Any, AnyBoolean>): false;
97export declare function isBoolean(value?: any): value is AnyBoolean;
98/** Checks to see if a value is null */
99export declare function isNull(value: null): true;
100export declare function isNull(value?: Exclude<Any, null>): false;
101export declare function isNull(value?: any): value is null;
102/** Checks to see if a value is undefined */
103export declare function isUndefined(value?: undefined): true;
104export declare function isUndefined(value?: Exclude<Any, undefined>): false;
105export declare function isUndefined(value?: any): value is undefined;
106/** Checks to see if a value is nullish */
107export declare function isNullish(value?: Nullish): true;
108export declare function isNullish(value?: Exclude<Any, Nullish>): false;
109export declare function isNullish(value?: any): value is Nullish;
110/** Checks to see if a value is a Map */
111export declare function isMap(value: AnyMap): true;
112export declare function isMap(value?: Exclude<Any, AnyMap>): false;
113export declare function isMap(value?: any): value is AnyMap;
114/** Checks to see if a value is a WeakMap */
115export declare function isWeakMap(value: AnyMap): false;
116export declare function isWeakMap(value: AnyWeakMap): true;
117export declare function isWeakMap(value?: Exclude<Any, AnyWeakMap>): false;
118export declare function isWeakMap(value?: any): value is AnyWeakMap;
119/**
120 * Is empty array
121 * @throws if the value was not an array
122 */
123export declare function isEmptyArray(value: EmptyArray): true;
124export declare function isEmptyArray(value: AnyArray): false;
125export declare function isEmptyArray(value?: Exclude<Any, AnyArray>): never;
126export declare function isEmptyArray(value?: any): value is EmptyArray;
127/**
128 * Is empty plain object
129 * @throws if the value was not a plain object
130 */
131export declare function isEmptyPlainObject(value: PlainObject): boolean;
132export declare function isEmptyPlainObject(value?: Exclude<Any, PlainObject>): never;
133export declare function isEmptyPlainObject(value?: any): value is PlainObject;
134/**
135 * Is empty map
136 * @throws if the value was not a Map
137 */
138export declare function isEmptyMap(value: AnyMap): boolean;
139export declare function isEmptyMap(value?: Exclude<Any, AnyMap>): never;
140export declare function isEmptyMap(value?: any): value is AnyMap;
141/**
142 * Is empty weak map
143 * @throws if the value was not a WeakMap
144 */
145export declare function isEmptyWeakMap(value: AnyMap): never;
146export declare function isEmptyWeakMap(value: AnyWeakMap): boolean;
147export declare function isEmptyWeakMap(value?: Exclude<Any, AnyWeakMap>): never;
148export declare function isEmptyWeakMap(value?: any): value is AnyWeakMap;
149/** Is empty keys */
150export declare function isEmptyKeys(value: EmptyArray): true;
151export declare function isEmptyKeys(value: AnyArray): false;
152export declare function isEmptyKeys(value: NonNullishObject): boolean;
153export declare function isEmptyKeys(value?: any): false;
154/**
155 * The default {@link TypeMap} for {@link getType}.
156 export * AsyncFunction and SyncFunction are missing, as they are more specific types that people can detect afterwards.
157 * @readonly
158 */
159export declare const typeMap: TypeMap;
160/**
161 * Cycle through the passed {@link TypeMap} testing the value, returning the first type that passes, otherwise `null`.
162 * @param value the value to test
163 * @param customTypeMap defaults to {@link typeMap}
164 */
165export declare function getType(value: any, customTypeMap?: TypeMap): string | null;
166//# sourceMappingURL=index.d.ts.map
\No newline at end of file