You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

25 lines
728 B

// eslint-disable-next-line @typescript-eslint/unbound-method
const toString = Object.prototype.toString;
export type AnyArray =
| any[] // eslint-disable-line @typescript-eslint/no-explicit-any
| Int8Array
| Uint8Array
| Uint8ClampedArray
| Int16Array
| Uint16Array
| Int32Array
| Uint32Array
| Float32Array
| Float64Array;
/**
* Checks if an object is an instance of an Array (array or typed array, except those that contain bigint values).
*
* @param value - Object to check.
* @returns True if the object is an array or a typed array.
*/
export function isAnyArray(value: unknown): value is AnyArray {
const tag = toString.call(value);
return tag.endsWith('Array]') && !tag.includes('Big');
}