Merge pull request #11222 from kitsonk/array-slice-typings

Improve Array.prototype.splice typing
This commit is contained in:
Mohamed Hegazy
2016-12-30 14:28:15 -08:00
committed by GitHub
7 changed files with 45 additions and 13 deletions

3
src/lib/es5.d.ts vendored
View File

@@ -1171,8 +1171,9 @@ interface Array<T> {
/**
* Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
* @param start The zero-based location in the array from which to start removing elements.
* @param deleteCount The number of elements to remove.
*/
splice(start: number): T[];
splice(start: number, deleteCount?: number): T[];
/**
* Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
* @param start The zero-based location in the array from which to start removing elements.

View File

@@ -0,0 +1,8 @@
//// [arraySlice.ts]
var arr: string[] | number[];
arr.splice(1, 1);
//// [arraySlice.js]
var arr;
arr.splice(1, 1);

View File

@@ -0,0 +1,9 @@
=== tests/cases/compiler/arraySlice.ts ===
var arr: string[] | number[];
>arr : Symbol(arr, Decl(arraySlice.ts, 0, 3))
arr.splice(1, 1);
>arr.splice : Symbol(splice, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>arr : Symbol(arr, Decl(arraySlice.ts, 0, 3))
>splice : Symbol(splice, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))

View File

@@ -0,0 +1,12 @@
=== tests/cases/compiler/arraySlice.ts ===
var arr: string[] | number[];
>arr : string[] | number[]
arr.splice(1, 1);
>arr.splice(1, 1) : string[] | number[]
>arr.splice : { (start: number, deleteCount?: number): string[]; (start: number, deleteCount: number, ...items: string[]): string[]; } | { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }
>arr : string[] | number[]
>splice : { (start: number, deleteCount?: number): string[]; (start: number, deleteCount: number, ...items: string[]): string[]; } | { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }
>1 : 1
>1 : 1

View File

@@ -2,9 +2,9 @@
var arr = [].splice(0,3,4,5);
>arr : any[]
>[].splice(0,3,4,5) : any[]
>[].splice : { (start: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; }
>[].splice : { (start: number, deleteCount?: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; }
>[] : undefined[]
>splice : { (start: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; }
>splice : { (start: number, deleteCount?: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; }
>0 : 0
>3 : 3
>4 : 4

View File

@@ -364,9 +364,9 @@ class ListWrapper {
>value : T
>T : T
>list.splice(index, 0, value) : T[]
>list.splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list.splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list : T[]
>splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>index : number
>0 : 0
>value : T
@@ -389,9 +389,9 @@ class ListWrapper {
list.splice(index, 1);
>list.splice(index, 1) : T[]
>list.splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list.splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list : T[]
>splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>index : number
>1 : 1
@@ -431,9 +431,9 @@ class ListWrapper {
list.splice(index, 1);
>list.splice(index, 1) : T[]
>list.splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list.splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list : T[]
>splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>index : number
>1 : 1
}
@@ -464,9 +464,9 @@ class ListWrapper {
list.splice(index, 1);
>list.splice(index, 1) : T[]
>list.splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list.splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>list : T[]
>splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>index : number
>1 : 1
@@ -603,9 +603,9 @@ class ListWrapper {
>length : number
>T : T
>l.splice(from, length) : T[]
>l.splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>l.splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>l : T[]
>splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>splice : { (start: number, deleteCount?: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }
>from : number
>length : number

View File

@@ -0,0 +1,2 @@
var arr: string[] | number[];
arr.splice(1, 1);