mirror of
https://github.com/zoriya/v10.git
synced 2026-08-10 16:09:18 +00:00
55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
export function isString(value: unknown): value is string {
|
|
return typeof value === 'string';
|
|
}
|
|
|
|
export function isNumber(value: unknown): value is number {
|
|
return typeof value === 'number';
|
|
}
|
|
|
|
export function isBoolean(value: unknown): value is boolean {
|
|
return typeof value === 'boolean';
|
|
}
|
|
|
|
export function isFunction(value: unknown): value is (...args: any[]) => any {
|
|
return typeof value === 'function';
|
|
}
|
|
|
|
export function isNull(value: unknown): value is null {
|
|
return value === null;
|
|
}
|
|
|
|
export function isUndefined(value: unknown): value is undefined {
|
|
return typeof value === 'undefined';
|
|
}
|
|
|
|
export function isNil(value: unknown): value is null | undefined {
|
|
return value == null;
|
|
}
|
|
|
|
export function isPromise(value: unknown): value is Promise<any> {
|
|
return value instanceof Promise;
|
|
}
|
|
|
|
/**
|
|
* Check if a value is an object, excluding null.
|
|
*/
|
|
export function isObject(value: unknown): value is object {
|
|
return value !== null && typeof value === 'object';
|
|
}
|
|
|
|
/**
|
|
* Check if a value is a plain object (not a class instance like Date, Map, etc).
|
|
*/
|
|
export function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
if (!isObject(value)) return false;
|
|
const proto = Object.getPrototypeOf(value);
|
|
return proto === null || proto === Object.prototype;
|
|
}
|
|
|
|
/**
|
|
* Check if a value is an AbortError.
|
|
*/
|
|
export function isAbortError(value: unknown): value is Error {
|
|
return value instanceof Error && value.name === 'AbortError';
|
|
}
|