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
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');
|
|
}
|
|
|