mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-23 07:07:09 -05:00
Add non-generic fallback overloads for TypedArray constructors (#60934)
This commit is contained in:
6
src/lib/es2020.bigint.d.ts
vendored
6
src/lib/es2020.bigint.d.ts
vendored
@@ -373,6 +373,7 @@ interface BigInt64ArrayConstructor {
|
||||
new (length?: number): BigInt64Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<bigint> | Iterable<bigint>): BigInt64Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): BigInt64Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): BigInt64Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<bigint> | ArrayBuffer): BigInt64Array<ArrayBuffer>;
|
||||
|
||||
/** The size in bytes of each element in the array. */
|
||||
@@ -650,6 +651,7 @@ interface BigUint64ArrayConstructor {
|
||||
new (length?: number): BigUint64Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<bigint> | Iterable<bigint>): BigUint64Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): BigUint64Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): BigUint64Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<bigint> | ArrayBuffer): BigUint64Array<ArrayBuffer>;
|
||||
|
||||
/** The size in bytes of each element in the array. */
|
||||
@@ -667,8 +669,8 @@ interface BigUint64ArrayConstructor {
|
||||
* @param mapfn A mapping function to call on every element of the array.
|
||||
* @param thisArg Value of 'this' used to invoke the mapfn.
|
||||
*/
|
||||
from(arrayLike: ArrayLike<bigint>): BigUint64Array;
|
||||
from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array;
|
||||
from(arrayLike: ArrayLike<bigint>): BigUint64Array<ArrayBuffer>;
|
||||
from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array<ArrayBuffer>;
|
||||
}
|
||||
declare var BigUint64Array: BigUint64ArrayConstructor;
|
||||
|
||||
|
||||
9
src/lib/es5.d.ts
vendored
9
src/lib/es5.d.ts
vendored
@@ -2103,6 +2103,7 @@ interface Int8ArrayConstructor {
|
||||
new (length: number): Int8Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Int8Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Int8Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Int8Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -2384,6 +2385,7 @@ interface Uint8ArrayConstructor {
|
||||
new (length: number): Uint8Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Uint8Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint8Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Uint8Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -2665,6 +2667,7 @@ interface Uint8ClampedArrayConstructor {
|
||||
new (length: number): Uint8ClampedArray<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Uint8ClampedArray<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Uint8ClampedArray<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -2945,6 +2948,7 @@ interface Int16ArrayConstructor {
|
||||
new (length: number): Int16Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Int16Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Int16Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Int16Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -3226,6 +3230,7 @@ interface Uint16ArrayConstructor {
|
||||
new (length: number): Uint16Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Uint16Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint16Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Uint16Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -3506,6 +3511,7 @@ interface Int32ArrayConstructor {
|
||||
new (length: number): Int32Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Int32Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Int32Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Int32Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -3786,6 +3792,7 @@ interface Uint32ArrayConstructor {
|
||||
new (length: number): Uint32Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Uint32Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint32Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Uint32Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -4067,6 +4074,7 @@ interface Float32ArrayConstructor {
|
||||
new (length: number): Float32Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Float32Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Float32Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Float32Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
@@ -4348,6 +4356,7 @@ interface Float64ArrayConstructor {
|
||||
new (length: number): Float64Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number>): Float64Array<ArrayBuffer>;
|
||||
new <TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number): Float64Array<TArrayBuffer>;
|
||||
new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array<ArrayBuffer>;
|
||||
new (array: ArrayLike<number> | ArrayBuffer): Float64Array<ArrayBuffer>;
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,9 +5,19 @@
|
||||
// https://github.com/microsoft/TypeScript/issues/60367
|
||||
|
||||
type TypedArrayConstructor =
|
||||
| Int8ArrayConstructor
|
||||
| Uint8ArrayConstructor
|
||||
| Uint8ClampedArrayConstructor
|
||||
| Int16ArrayConstructor
|
||||
| Uint16ArrayConstructor
|
||||
| Int32ArrayConstructor
|
||||
| Uint32ArrayConstructor
|
||||
| Float32ArrayConstructor
|
||||
| Float64ArrayConstructor
|
||||
| BigInt64ArrayConstructor
|
||||
| BigUint64ArrayConstructor
|
||||
|
||||
export function makeTypedArray(buffer: ArrayBuffer, ctr: TypedArrayConstructor) {
|
||||
return new ctr(buffer);
|
||||
new ctr(buffer);
|
||||
new ctr(buffer, 0, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user