@@ -1406,6 +1406,14 @@ interface ArrayBuffer {
14061406 slice(begin: number, end?: number): ArrayBuffer;
14071407}
14081408
1409+ /**
1410+ * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.
1411+ */
1412+ interface ArrayBufferTypes {
1413+ ArrayBuffer: ArrayBuffer;
1414+ }
1415+ type ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];
1416+
14091417interface ArrayBufferConstructor {
14101418 readonly prototype: ArrayBuffer;
14111419 new (byteLength: number): ArrayBuffer;
@@ -1417,7 +1425,7 @@ interface ArrayBufferView {
14171425 /**
14181426 * The ArrayBuffer instance referenced by the array.
14191427 */
1420- buffer: ArrayBuffer ;
1428+ buffer: ArrayBufferLike ;
14211429
14221430 /**
14231431 * The length in bytes of the array.
@@ -1559,7 +1567,7 @@ interface DataView {
15591567}
15601568
15611569interface DataViewConstructor {
1562- new (buffer: ArrayBuffer , byteOffset?: number, byteLength?: number): DataView;
1570+ new (buffer: ArrayBufferLike , byteOffset?: number, byteLength?: number): DataView;
15631571}
15641572declare const DataView: DataViewConstructor;
15651573
@@ -1576,7 +1584,7 @@ interface Int8Array {
15761584 /**
15771585 * The ArrayBuffer instance referenced by the array.
15781586 */
1579- readonly buffer: ArrayBuffer ;
1587+ readonly buffer: ArrayBufferLike ;
15801588
15811589 /**
15821590 * The length in bytes of the array.
@@ -1819,7 +1827,7 @@ interface Int8ArrayConstructor {
18191827 readonly prototype: Int8Array;
18201828 new (length: number): Int8Array;
18211829 new (array: ArrayLike<number>): Int8Array;
1822- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Int8Array;
1830+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Int8Array;
18231831
18241832 /**
18251833 * The size in bytes of each element in the array.
@@ -1860,7 +1868,7 @@ interface Uint8Array {
18601868 /**
18611869 * The ArrayBuffer instance referenced by the array.
18621870 */
1863- readonly buffer: ArrayBuffer ;
1871+ readonly buffer: ArrayBufferLike ;
18641872
18651873 /**
18661874 * The length in bytes of the array.
@@ -2104,7 +2112,7 @@ interface Uint8ArrayConstructor {
21042112 readonly prototype: Uint8Array;
21052113 new (length: number): Uint8Array;
21062114 new (array: ArrayLike<number>): Uint8Array;
2107- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Uint8Array;
2115+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Uint8Array;
21082116
21092117 /**
21102118 * The size in bytes of each element in the array.
@@ -2145,7 +2153,7 @@ interface Uint8ClampedArray {
21452153 /**
21462154 * The ArrayBuffer instance referenced by the array.
21472155 */
2148- readonly buffer: ArrayBuffer ;
2156+ readonly buffer: ArrayBufferLike ;
21492157
21502158 /**
21512159 * The length in bytes of the array.
@@ -2389,7 +2397,7 @@ interface Uint8ClampedArrayConstructor {
23892397 readonly prototype: Uint8ClampedArray;
23902398 new (length: number): Uint8ClampedArray;
23912399 new (array: ArrayLike<number>): Uint8ClampedArray;
2392- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Uint8ClampedArray;
2400+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Uint8ClampedArray;
23932401
23942402 /**
23952403 * The size in bytes of each element in the array.
@@ -2429,7 +2437,7 @@ interface Int16Array {
24292437 /**
24302438 * The ArrayBuffer instance referenced by the array.
24312439 */
2432- readonly buffer: ArrayBuffer ;
2440+ readonly buffer: ArrayBufferLike ;
24332441
24342442 /**
24352443 * The length in bytes of the array.
@@ -2673,7 +2681,7 @@ interface Int16ArrayConstructor {
26732681 readonly prototype: Int16Array;
26742682 new (length: number): Int16Array;
26752683 new (array: ArrayLike<number>): Int16Array;
2676- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Int16Array;
2684+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Int16Array;
26772685
26782686 /**
26792687 * The size in bytes of each element in the array.
@@ -2714,7 +2722,7 @@ interface Uint16Array {
27142722 /**
27152723 * The ArrayBuffer instance referenced by the array.
27162724 */
2717- readonly buffer: ArrayBuffer ;
2725+ readonly buffer: ArrayBufferLike ;
27182726
27192727 /**
27202728 * The length in bytes of the array.
@@ -2958,7 +2966,7 @@ interface Uint16ArrayConstructor {
29582966 readonly prototype: Uint16Array;
29592967 new (length: number): Uint16Array;
29602968 new (array: ArrayLike<number>): Uint16Array;
2961- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Uint16Array;
2969+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Uint16Array;
29622970
29632971 /**
29642972 * The size in bytes of each element in the array.
@@ -2998,7 +3006,7 @@ interface Int32Array {
29983006 /**
29993007 * The ArrayBuffer instance referenced by the array.
30003008 */
3001- readonly buffer: ArrayBuffer ;
3009+ readonly buffer: ArrayBufferLike ;
30023010
30033011 /**
30043012 * The length in bytes of the array.
@@ -3242,7 +3250,7 @@ interface Int32ArrayConstructor {
32423250 readonly prototype: Int32Array;
32433251 new (length: number): Int32Array;
32443252 new (array: ArrayLike<number>): Int32Array;
3245- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Int32Array;
3253+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Int32Array;
32463254
32473255 /**
32483256 * The size in bytes of each element in the array.
@@ -3282,7 +3290,7 @@ interface Uint32Array {
32823290 /**
32833291 * The ArrayBuffer instance referenced by the array.
32843292 */
3285- readonly buffer: ArrayBuffer ;
3293+ readonly buffer: ArrayBufferLike ;
32863294
32873295 /**
32883296 * The length in bytes of the array.
@@ -3526,7 +3534,7 @@ interface Uint32ArrayConstructor {
35263534 readonly prototype: Uint32Array;
35273535 new (length: number): Uint32Array;
35283536 new (array: ArrayLike<number>): Uint32Array;
3529- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Uint32Array;
3537+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Uint32Array;
35303538
35313539 /**
35323540 * The size in bytes of each element in the array.
@@ -3566,7 +3574,7 @@ interface Float32Array {
35663574 /**
35673575 * The ArrayBuffer instance referenced by the array.
35683576 */
3569- readonly buffer: ArrayBuffer ;
3577+ readonly buffer: ArrayBufferLike ;
35703578
35713579 /**
35723580 * The length in bytes of the array.
@@ -3810,7 +3818,7 @@ interface Float32ArrayConstructor {
38103818 readonly prototype: Float32Array;
38113819 new (length: number): Float32Array;
38123820 new (array: ArrayLike<number>): Float32Array;
3813- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Float32Array;
3821+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Float32Array;
38143822
38153823 /**
38163824 * The size in bytes of each element in the array.
@@ -3851,7 +3859,7 @@ interface Float64Array {
38513859 /**
38523860 * The ArrayBuffer instance referenced by the array.
38533861 */
3854- readonly buffer: ArrayBuffer ;
3862+ readonly buffer: ArrayBufferLike ;
38553863
38563864 /**
38573865 * The length in bytes of the array.
@@ -4095,7 +4103,7 @@ interface Float64ArrayConstructor {
40954103 readonly prototype: Float64Array;
40964104 new (length: number): Float64Array;
40974105 new (array: ArrayLike<number>): Float64Array;
4098- new (buffer: ArrayBuffer , byteOffset?: number, length?: number): Float64Array;
4106+ new (buffer: ArrayBufferLike , byteOffset?: number, length?: number): Float64Array;
40994107
41004108 /**
41014109 * The size in bytes of each element in the array.
0 commit comments