Skip to content

Commit 065b83b

Browse files
committed
Make numeric Array constructors take ArrayLikeBuffer union
PR microsoft#38449 changed the second overload of the constructor for Int8, Uint8, Int32, Uint32, Int16, Uint16, Float, Float64 -Array so that it no longer includes `ArrayBufferLike`. It's just `ArrayLike<number>`. This is fine except in the case that the caller provides exactly `ArrayLike<number> | ArrayBufferLike`. This PR adds ArrayBufferLike back so that the union is once again accepted. This avoids a breaking change, in particular in one Microsoft-internal codebase.
1 parent ff2ff98 commit 065b83b

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/lib/es5.d.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1946,7 +1946,7 @@ interface Int8Array {
19461946
interface Int8ArrayConstructor {
19471947
readonly prototype: Int8Array;
19481948
new(length: number): Int8Array;
1949-
new(array: ArrayLike<number>): Int8Array;
1949+
new(array: ArrayLike<number> | ArrayBufferLike): Int8Array;
19501950
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int8Array;
19511951

19521952
/**
@@ -2229,7 +2229,7 @@ interface Uint8Array {
22292229
interface Uint8ArrayConstructor {
22302230
readonly prototype: Uint8Array;
22312231
new(length: number): Uint8Array;
2232-
new(array: ArrayLike<number>): Uint8Array;
2232+
new(array: ArrayLike<number> | ArrayBufferLike): Uint8Array;
22332233
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;
22342234

22352235
/**
@@ -2511,7 +2511,7 @@ interface Uint8ClampedArray {
25112511
interface Uint8ClampedArrayConstructor {
25122512
readonly prototype: Uint8ClampedArray;
25132513
new(length: number): Uint8ClampedArray;
2514-
new(array: ArrayLike<number>): Uint8ClampedArray;
2514+
new(array: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;
25152515
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8ClampedArray;
25162516

25172517
/**
@@ -2791,7 +2791,7 @@ interface Int16Array {
27912791
interface Int16ArrayConstructor {
27922792
readonly prototype: Int16Array;
27932793
new(length: number): Int16Array;
2794-
new(array: ArrayLike<number>): Int16Array;
2794+
new(array: ArrayLike<number> | ArrayBufferLike): Int16Array;
27952795
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int16Array;
27962796

27972797
/**
@@ -3074,7 +3074,7 @@ interface Uint16Array {
30743074
interface Uint16ArrayConstructor {
30753075
readonly prototype: Uint16Array;
30763076
new(length: number): Uint16Array;
3077-
new(array: ArrayLike<number>): Uint16Array;
3077+
new(array: ArrayLike<number> | ArrayBufferLike): Uint16Array;
30783078
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint16Array;
30793079

30803080
/**
@@ -3356,7 +3356,7 @@ interface Int32Array {
33563356
interface Int32ArrayConstructor {
33573357
readonly prototype: Int32Array;
33583358
new(length: number): Int32Array;
3359-
new(array: ArrayLike<number>): Int32Array;
3359+
new(array: ArrayLike<number> | ArrayBufferLike): Int32Array;
33603360
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int32Array;
33613361

33623362
/**
@@ -3637,7 +3637,7 @@ interface Uint32Array {
36373637
interface Uint32ArrayConstructor {
36383638
readonly prototype: Uint32Array;
36393639
new(length: number): Uint32Array;
3640-
new(array: ArrayLike<number>): Uint32Array;
3640+
new(array: ArrayLike<number> | ArrayBufferLike): Uint32Array;
36413641
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint32Array;
36423642

36433643
/**
@@ -3919,7 +3919,7 @@ interface Float32Array {
39193919
interface Float32ArrayConstructor {
39203920
readonly prototype: Float32Array;
39213921
new(length: number): Float32Array;
3922-
new(array: ArrayLike<number>): Float32Array;
3922+
new(array: ArrayLike<number> | ArrayBufferLike): Float32Array;
39233923
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float32Array;
39243924

39253925
/**
@@ -4193,7 +4193,7 @@ interface Float64Array {
41934193
interface Float64ArrayConstructor {
41944194
readonly prototype: Float64Array;
41954195
new(length: number): Float64Array;
4196-
new(array: ArrayLike<number>): Float64Array;
4196+
new(array: ArrayLike<number> | ArrayBufferLike): Float64Array;
41974197
new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float64Array;
41984198

41994199
/**

0 commit comments

Comments
 (0)