Skip to content

Commit e7d376f

Browse files
committed
fix(lib.d.ts): fixed buffer parameter type of DataView
1 parent 43cc362 commit e7d376f

File tree

8 files changed

+35
-3
lines changed

8 files changed

+35
-3
lines changed

lib/lib.es5.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1843,7 +1843,7 @@ interface DataView {
18431843

18441844
interface DataViewConstructor {
18451845
readonly prototype: DataView;
1846-
new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;
1846+
new(buffer: ArrayBufferLike & { BYTES_PER_ELEMENT?: never }, byteOffset?: number, byteLength?: number): DataView;
18471847
}
18481848
declare var DataView: DataViewConstructor;
18491849

src/lib/es5.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1814,7 +1814,7 @@ interface DataView {
18141814

18151815
interface DataViewConstructor {
18161816
readonly prototype: DataView;
1817-
new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;
1817+
new(buffer: ArrayBufferLike & { BYTES_PER_ELEMENT?: never }, byteOffset?: number, byteLength?: number): DataView;
18181818
}
18191819
declare var DataView: DataViewConstructor;
18201820

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
tests/cases/compiler/dataViewConstructor.ts(1,14): error TS2345: Argument of type 'Uint8Array' is not assignable to parameter of type 'ArrayBuffer & { BYTES_PER_ELEMENT?: never; }'.
2+
Type 'Uint8Array' is not assignable to type '{ BYTES_PER_ELEMENT?: never; }'.
3+
Types of property 'BYTES_PER_ELEMENT' are incompatible.
4+
Type 'number' is not assignable to type 'never'.
5+
6+
7+
==== tests/cases/compiler/dataViewConstructor.ts (1 errors) ====
8+
new DataView(new Uint8Array(32)); // should error
9+
~~~~~~~~~~~~~~~~~~
10+
!!! error TS2345: Argument of type 'Uint8Array' is not assignable to parameter of type 'ArrayBuffer & { BYTES_PER_ELEMENT?: never; }'.
11+
!!! error TS2345: Type 'Uint8Array' is not assignable to type '{ BYTES_PER_ELEMENT?: never; }'.
12+
!!! error TS2345: Types of property 'BYTES_PER_ELEMENT' are incompatible.
13+
!!! error TS2345: Type 'number' is not assignable to type 'never'.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//// [dataViewConstructor.ts]
2+
new DataView(new Uint8Array(32)); // should error
3+
4+
//// [dataViewConstructor.js]
5+
new DataView(new Uint8Array(32)); // should error
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
=== tests/cases/compiler/dataViewConstructor.ts ===
2+
new DataView(new Uint8Array(32)); // should error
3+
>DataView : Symbol(DataView, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
4+
>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
5+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=== tests/cases/compiler/dataViewConstructor.ts ===
2+
new DataView(new Uint8Array(32)); // should error
3+
>new DataView(new Uint8Array(32)) : DataView
4+
>DataView : DataViewConstructor
5+
>new Uint8Array(32) : Uint8Array
6+
>Uint8Array : Uint8ArrayConstructor
7+
>32 : 32
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
new DataView(new Uint8Array(32)); // should error

tests/lib/lib.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1387,7 +1387,7 @@ interface DataView {
13871387
}
13881388

13891389
interface DataViewConstructor {
1390-
new (buffer: ArrayBuffer, byteOffset?: number, byteLength?: number): DataView;
1390+
new (buffer: ArrayBuffer & { BYTES_PER_ELEMENT?: never }, byteOffset?: number, byteLength?: number): DataView;
13911391
}
13921392
declare var DataView: DataViewConstructor;
13931393

0 commit comments

Comments
 (0)