Merge pull request #5322 from jvilk/master
Change ArrayBuffer.isView declaration to type guard for ArrayBufferView.
This commit is contained in:
commit
28c2887d50
2
src/lib/core.d.ts
vendored
2
src/lib/core.d.ts
vendored
|
@ -1210,7 +1210,7 @@ interface ArrayBuffer {
|
||||||
interface ArrayBufferConstructor {
|
interface ArrayBufferConstructor {
|
||||||
prototype: ArrayBuffer;
|
prototype: ArrayBuffer;
|
||||||
new (byteLength: number): ArrayBuffer;
|
new (byteLength: number): ArrayBuffer;
|
||||||
isView(arg: any): boolean;
|
isView(arg: any): arg is ArrayBufferView;
|
||||||
}
|
}
|
||||||
declare var ArrayBuffer: ArrayBufferConstructor;
|
declare var ArrayBuffer: ArrayBufferConstructor;
|
||||||
|
|
||||||
|
|
13
tests/baselines/reference/arrayBufferIsViewNarrowsType.js
Normal file
13
tests/baselines/reference/arrayBufferIsViewNarrowsType.js
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
//// [arrayBufferIsViewNarrowsType.ts]
|
||||||
|
var obj: Object;
|
||||||
|
if (ArrayBuffer.isView(obj)) {
|
||||||
|
// isView should be a guard that narrows type to ArrayBufferView.
|
||||||
|
var ab: ArrayBufferView = obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
//// [arrayBufferIsViewNarrowsType.js]
|
||||||
|
var obj;
|
||||||
|
if (ArrayBuffer.isView(obj)) {
|
||||||
|
// isView should be a guard that narrows type to ArrayBufferView.
|
||||||
|
var ab = obj;
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
=== tests/cases/compiler/arrayBufferIsViewNarrowsType.ts ===
|
||||||
|
var obj: Object;
|
||||||
|
>obj : Symbol(obj, Decl(arrayBufferIsViewNarrowsType.ts, 0, 3))
|
||||||
|
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|
||||||
|
|
||||||
|
if (ArrayBuffer.isView(obj)) {
|
||||||
|
>ArrayBuffer.isView : Symbol(ArrayBufferConstructor.isView, Decl(lib.d.ts, --, --))
|
||||||
|
>ArrayBuffer : Symbol(ArrayBuffer, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
|
||||||
|
>isView : Symbol(ArrayBufferConstructor.isView, Decl(lib.d.ts, --, --))
|
||||||
|
>obj : Symbol(obj, Decl(arrayBufferIsViewNarrowsType.ts, 0, 3))
|
||||||
|
|
||||||
|
// isView should be a guard that narrows type to ArrayBufferView.
|
||||||
|
var ab: ArrayBufferView = obj;
|
||||||
|
>ab : Symbol(ab, Decl(arrayBufferIsViewNarrowsType.ts, 3, 7))
|
||||||
|
>ArrayBufferView : Symbol(ArrayBufferView, Decl(lib.d.ts, --, --))
|
||||||
|
>obj : Symbol(obj, Decl(arrayBufferIsViewNarrowsType.ts, 0, 3))
|
||||||
|
}
|
18
tests/baselines/reference/arrayBufferIsViewNarrowsType.types
Normal file
18
tests/baselines/reference/arrayBufferIsViewNarrowsType.types
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
=== tests/cases/compiler/arrayBufferIsViewNarrowsType.ts ===
|
||||||
|
var obj: Object;
|
||||||
|
>obj : Object
|
||||||
|
>Object : Object
|
||||||
|
|
||||||
|
if (ArrayBuffer.isView(obj)) {
|
||||||
|
>ArrayBuffer.isView(obj) : boolean
|
||||||
|
>ArrayBuffer.isView : (arg: any) => arg is ArrayBufferView
|
||||||
|
>ArrayBuffer : ArrayBufferConstructor
|
||||||
|
>isView : (arg: any) => arg is ArrayBufferView
|
||||||
|
>obj : Object
|
||||||
|
|
||||||
|
// isView should be a guard that narrows type to ArrayBufferView.
|
||||||
|
var ab: ArrayBufferView = obj;
|
||||||
|
>ab : ArrayBufferView
|
||||||
|
>ArrayBufferView : ArrayBufferView
|
||||||
|
>obj : ArrayBufferView
|
||||||
|
}
|
5
tests/cases/compiler/arrayBufferIsViewNarrowsType.ts
Normal file
5
tests/cases/compiler/arrayBufferIsViewNarrowsType.ts
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
var obj: Object;
|
||||||
|
if (ArrayBuffer.isView(obj)) {
|
||||||
|
// isView should be a guard that narrows type to ArrayBufferView.
|
||||||
|
var ab: ArrayBufferView = obj;
|
||||||
|
}
|
Loading…
Reference in a new issue