diff --git a/src/lib/es2015.core.d.ts b/src/lib/es2015.core.d.ts index 8a3e4cf80f675..ccfed5f808a3c 100644 --- a/src/lib/es2015.core.d.ts +++ b/src/lib/es2015.core.d.ts @@ -42,6 +42,15 @@ interface Array { * @param end If not specified, length of the this object is used as its default value. */ copyWithin(target: number, start: number, end?: number): this; + + /** + * 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. If deleteCount is omitted, or if its value is equal to or larger + * than array.length - start (that is, if it is equal to or greater than the number of elements left in the array, + * starting at start), then all the elements from start to the end of the array will be deleted. + */ + splice(start: number, deleteCount?: number): T[]; } interface ArrayConstructor { diff --git a/src/lib/es5.d.ts b/src/lib/es5.d.ts index 24e2c489197c3..afdd6ad1795c6 100644 --- a/src/lib/es5.d.ts +++ b/src/lib/es5.d.ts @@ -1254,7 +1254,7 @@ interface Array { * @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, deleteCount?: 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. diff --git a/tests/baselines/reference/arraySlice.types b/tests/baselines/reference/arraySlice.types index d1ee482ccaac4..bc65a26cebf72 100644 --- a/tests/baselines/reference/arraySlice.types +++ b/tests/baselines/reference/arraySlice.types @@ -4,9 +4,9 @@ var 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.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[]; } +>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 diff --git a/tests/baselines/reference/invalidSplice.types b/tests/baselines/reference/invalidSplice.types index 9ff5902172581..a3ba1dde360cf 100644 --- a/tests/baselines/reference/invalidSplice.types +++ b/tests/baselines/reference/invalidSplice.types @@ -2,9 +2,9 @@ var arr = [].splice(0,3,4,5); >arr : any[] >[].splice(0,3,4,5) : any[] ->[].splice : { (start: number, deleteCount?: 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, deleteCount?: 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 diff --git a/tests/baselines/reference/jsDeclarationsImportTypeBundled.types b/tests/baselines/reference/jsDeclarationsImportTypeBundled.types index 0fac842568c18..6bb9bb74f5207 100644 --- a/tests/baselines/reference/jsDeclarationsImportTypeBundled.types +++ b/tests/baselines/reference/jsDeclarationsImportTypeBundled.types @@ -28,9 +28,9 @@ const items = [{x: 12}]; >12 : 12 module.exports = items; ->module.exports = items : { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount?: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; } ->module.exports : { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount?: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; } ->module : { "\"tests/cases/conformance/jsdoc/declarations/index\"": { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount?: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; }; } ->exports : { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount?: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; } +>module.exports = items : { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; } +>module.exports : { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; } +>module : { "\"tests/cases/conformance/jsdoc/declarations/index\"": { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; }; } +>exports : { [n: number]: { x: number; }; length: number; toString(): string; toLocaleString(): string; pop(): { x: number; }; push(...items: { x: number; }[]): number; concat(...items: ConcatArray<{ x: number; }>[]): { x: number; }[]; concat(...items: ({ x: number; } | ConcatArray<{ x: number; }>)[]): { x: number; }[]; join(separator?: string): string; reverse(): { x: number; }[]; shift(): { x: number; }; slice(start?: number, end?: number): { x: number; }[]; sort(compareFn?: (a: { x: number; }, b: { x: number; }) => number): { x: number; }[]; splice(start: number, deleteCount: number): { x: number; }[]; splice(start: number, deleteCount: number, ...items: { x: number; }[]): { x: number; }[]; unshift(...items: { x: number; }[]): number; indexOf(searchElement: { x: number; }, fromIndex?: number): number; lastIndexOf(searchElement: { x: number; }, fromIndex?: number): number; every(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => void, thisArg?: any): void; map(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: { x: number; }, index: number, array: { x: number; }[]) => unknown, thisArg?: any): { x: number; }[]; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduce(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: { x: number; }, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => { x: number; }, initialValue: { x: number; }): { x: number; }; reduceRight(callbackfn: (previousValue: U, currentValue: { x: number; }, currentIndex: number, array: { x: number; }[]) => U, initialValue: U): U; } >items : { x: number; }[] diff --git a/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration.types b/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration.types index f684be1a54043..92279bc2347fe 100644 --- a/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration.types +++ b/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration.types @@ -16,9 +16,9 @@ const items = []; >[] : undefined[] module.exports = items; ->module.exports = items : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } ->module.exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } ->module : { "\"tests/cases/conformance/jsdoc/declarations/index\"": { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; }; } ->exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } +>module.exports = items : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } +>module.exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } +>module : { "\"tests/cases/conformance/jsdoc/declarations/index\"": { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; }; } +>exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } >items : Item[] diff --git a/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration2.types b/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration2.types index 525b934644b06..e4a85bef283eb 100644 --- a/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration2.types +++ b/tests/baselines/reference/jsDeclarationsTypeReassignmentFromDeclaration2.types @@ -7,10 +7,10 @@ const items = require("./some-mod")(); >"./some-mod" : "./some-mod" module.exports = items; ->module.exports = items : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } ->module.exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } ->module : { "\"tests/cases/conformance/jsdoc/declarations/index\"": { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; }; } ->exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount?: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } +>module.exports = items : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } +>module.exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } +>module : { "\"tests/cases/conformance/jsdoc/declarations/index\"": { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; }; } +>exports : { [n: number]: Item; length: number; toString(): string; toLocaleString(): string; pop(): Item; push(...items: Item[]): number; concat(...items: ConcatArray[]): Item[]; concat(...items: (Item | ConcatArray)[]): Item[]; join(separator?: string): string; reverse(): Item[]; shift(): Item; slice(start?: number, end?: number): Item[]; sort(compareFn?: (a: Item, b: Item) => number): Item[]; splice(start: number, deleteCount: number): Item[]; splice(start: number, deleteCount: number, ...items: Item[]): Item[]; splice(start: number, deleteCount?: number): Item[]; unshift(...items: Item[]): number; indexOf(searchElement: Item, fromIndex?: number): number; lastIndexOf(searchElement: Item, fromIndex?: number): number; every(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: Item, index: number, array: Item[]) => void, thisArg?: any): void; map(callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: Item, index: number, array: Item[]) => unknown, thisArg?: any): Item[]; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduce(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduce(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item): Item; reduceRight(callbackfn: (previousValue: Item, currentValue: Item, currentIndex: number, array: Item[]) => Item, initialValue: Item): Item; reduceRight(callbackfn: (previousValue: U, currentValue: Item, currentIndex: number, array: Item[]) => U, initialValue: U): U; find(predicate: (this: void, value: Item, index: number, obj: Item[]) => value is S, thisArg?: any): S; find(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): Item; findIndex(predicate: (value: Item, index: number, obj: Item[]) => unknown, thisArg?: any): number; fill(value: Item, start?: number, end?: number): Item[]; copyWithin(target: number, start: number, end?: number): Item[]; [Symbol.iterator](): IterableIterator; entries(): IterableIterator<[number, Item]>; keys(): IterableIterator; values(): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } >items : Item[] === tests/cases/conformance/jsdoc/declarations/some-mod.d.ts === diff --git a/tests/baselines/reference/parserharness.types b/tests/baselines/reference/parserharness.types index 5fde386f90acf..bd8652aac0e32 100644 --- a/tests/baselines/reference/parserharness.types +++ b/tests/baselines/reference/parserharness.types @@ -6383,11 +6383,11 @@ module Harness { this.editRanges.splice(0, this.maxScriptVersions - this.editRanges.length); >this.editRanges.splice(0, this.maxScriptVersions - this.editRanges.length) : { length: number; editRange: any; }[] ->this.editRanges.splice : { (start: number, deleteCount?: number): { length: number; editRange: any; }[]; (start: number, deleteCount: number, ...items: { length: number; editRange: any; }[]): { length: number; editRange: any; }[]; } +>this.editRanges.splice : { (start: number, deleteCount: number): { length: number; editRange: any; }[]; (start: number, deleteCount: number, ...items: { length: number; editRange: any; }[]): { length: number; editRange: any; }[]; } >this.editRanges : { length: number; editRange: any; }[] >this : this >editRanges : { length: number; editRange: any; }[] ->splice : { (start: number, deleteCount?: number): { length: number; editRange: any; }[]; (start: number, deleteCount: number, ...items: { length: number; editRange: any; }[]): { length: number; editRange: any; }[]; } +>splice : { (start: number, deleteCount: number): { length: number; editRange: any; }[]; (start: number, deleteCount: number, ...items: { length: number; editRange: any; }[]): { length: number; editRange: any; }[]; } >0 : 0 >this.maxScriptVersions - this.editRanges.length : number >this.maxScriptVersions : number diff --git a/tests/baselines/reference/restInvalidArgumentType.types b/tests/baselines/reference/restInvalidArgumentType.types index 638634e8beabd..0a3b66362f83a 100644 --- a/tests/baselines/reference/restInvalidArgumentType.types +++ b/tests/baselines/reference/restInvalidArgumentType.types @@ -71,7 +71,7 @@ function f(p1: T, p2: T[]) { >p1 : T var {...r2} = p2; // OK ->r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } >p2 : T[] var {...r3} = t; // Error, generic type paramter diff --git a/tests/baselines/reference/restParameterWithBindingPattern3.types b/tests/baselines/reference/restParameterWithBindingPattern3.types index b98f0cdd367d7..6b5a195ae3d9c 100644 --- a/tests/baselines/reference/restParameterWithBindingPattern3.types +++ b/tests/baselines/reference/restParameterWithBindingPattern3.types @@ -31,5 +31,5 @@ function e(...{0: a = 1, 1: b = true, ...rest: rest}: [boolean, string, number]) >b : string >true : true >rest : any ->rest : { [n: number]: string | number | boolean; 0: boolean; 1: string; 2: number; length: 3; toString(): string; toLocaleString(): string; pop(): string | number | boolean; push(...items: (string | number | boolean)[]): number; concat(...items: ConcatArray[]): (string | number | boolean)[]; concat(...items: (string | number | boolean | ConcatArray)[]): (string | number | boolean)[]; join(separator?: string): string; reverse(): (string | number | boolean)[]; shift(): string | number | boolean; slice(start?: number, end?: number): (string | number | boolean)[]; sort(compareFn?: (a: string | number | boolean, b: string | number | boolean) => number): [boolean, string, number]; splice(start: number, deleteCount?: number): (string | number | boolean)[]; splice(start: number, deleteCount: number, ...items: (string | number | boolean)[]): (string | number | boolean)[]; unshift(...items: (string | number | boolean)[]): number; indexOf(searchElement: string | number | boolean, fromIndex?: number): number; lastIndexOf(searchElement: string | number | boolean, fromIndex?: number): number; every(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => void, thisArg?: any): void; map(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): (string | number | boolean)[]; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduce(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduceRight(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; } +>rest : { [n: number]: string | number | boolean; 0: boolean; 1: string; 2: number; length: 3; toString(): string; toLocaleString(): string; pop(): string | number | boolean; push(...items: (string | number | boolean)[]): number; concat(...items: ConcatArray[]): (string | number | boolean)[]; concat(...items: (string | number | boolean | ConcatArray)[]): (string | number | boolean)[]; join(separator?: string): string; reverse(): (string | number | boolean)[]; shift(): string | number | boolean; slice(start?: number, end?: number): (string | number | boolean)[]; sort(compareFn?: (a: string | number | boolean, b: string | number | boolean) => number): [boolean, string, number]; splice(start: number, deleteCount: number): (string | number | boolean)[]; splice(start: number, deleteCount: number, ...items: (string | number | boolean)[]): (string | number | boolean)[]; unshift(...items: (string | number | boolean)[]): number; indexOf(searchElement: string | number | boolean, fromIndex?: number): number; lastIndexOf(searchElement: string | number | boolean, fromIndex?: number): number; every(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => void, thisArg?: any): void; map(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): (string | number | boolean)[]; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduce(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduceRight(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; } diff --git a/tests/baselines/reference/restPropertyWithBindingPattern.types b/tests/baselines/reference/restPropertyWithBindingPattern.types index 55bd7fd95f6e0..e079b7857ee9c 100644 --- a/tests/baselines/reference/restPropertyWithBindingPattern.types +++ b/tests/baselines/reference/restPropertyWithBindingPattern.types @@ -17,14 +17,14 @@ ({...[]} = {}); >({...[]} = {}) : {} >{...[]} = {} : {} ->{...[]} : { [n: number]: undefined; length: number; toString(): string; toLocaleString(): string; pop(): undefined; push(...items: undefined[]): number; concat(...items: ConcatArray[]): undefined[]; concat(...items: ConcatArray[]): undefined[]; join(separator?: string): string; reverse(): undefined[]; shift(): undefined; slice(start?: number, end?: number): undefined[]; sort(compareFn?: (a: undefined, b: undefined) => number): undefined[]; splice(start: number, deleteCount?: number): undefined[]; splice(start: number, deleteCount: number, ...items: undefined[]): undefined[]; unshift(...items: undefined[]): number; indexOf(searchElement: undefined, fromIndex?: number): number; lastIndexOf(searchElement: undefined, fromIndex?: number): number; every(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: undefined, index: number, array: undefined[]) => void, thisArg?: any): void; map(callbackfn: (value: undefined, index: number, array: undefined[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): undefined[]; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduce(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduceRight(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; } +>{...[]} : { [n: number]: undefined; length: number; toString(): string; toLocaleString(): string; pop(): undefined; push(...items: undefined[]): number; concat(...items: ConcatArray[]): undefined[]; concat(...items: ConcatArray[]): undefined[]; join(separator?: string): string; reverse(): undefined[]; shift(): undefined; slice(start?: number, end?: number): undefined[]; sort(compareFn?: (a: undefined, b: undefined) => number): undefined[]; splice(start: number, deleteCount: number): undefined[]; splice(start: number, deleteCount: number, ...items: undefined[]): undefined[]; unshift(...items: undefined[]): number; indexOf(searchElement: undefined, fromIndex?: number): number; lastIndexOf(searchElement: undefined, fromIndex?: number): number; every(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: undefined, index: number, array: undefined[]) => void, thisArg?: any): void; map(callbackfn: (value: undefined, index: number, array: undefined[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): undefined[]; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduce(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduceRight(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; } >[] : undefined[] >{} : {} ({...([])} = {}); >({...([])} = {}) : {} >{...([])} = {} : {} ->{...([])} : { [n: number]: undefined; length: number; toString(): string; toLocaleString(): string; pop(): undefined; push(...items: undefined[]): number; concat(...items: ConcatArray[]): undefined[]; concat(...items: ConcatArray[]): undefined[]; join(separator?: string): string; reverse(): undefined[]; shift(): undefined; slice(start?: number, end?: number): undefined[]; sort(compareFn?: (a: undefined, b: undefined) => number): undefined[]; splice(start: number, deleteCount?: number): undefined[]; splice(start: number, deleteCount: number, ...items: undefined[]): undefined[]; unshift(...items: undefined[]): number; indexOf(searchElement: undefined, fromIndex?: number): number; lastIndexOf(searchElement: undefined, fromIndex?: number): number; every(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: undefined, index: number, array: undefined[]) => void, thisArg?: any): void; map(callbackfn: (value: undefined, index: number, array: undefined[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): undefined[]; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduce(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduceRight(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; } +>{...([])} : { [n: number]: undefined; length: number; toString(): string; toLocaleString(): string; pop(): undefined; push(...items: undefined[]): number; concat(...items: ConcatArray[]): undefined[]; concat(...items: ConcatArray[]): undefined[]; join(separator?: string): string; reverse(): undefined[]; shift(): undefined; slice(start?: number, end?: number): undefined[]; sort(compareFn?: (a: undefined, b: undefined) => number): undefined[]; splice(start: number, deleteCount: number): undefined[]; splice(start: number, deleteCount: number, ...items: undefined[]): undefined[]; unshift(...items: undefined[]): number; indexOf(searchElement: undefined, fromIndex?: number): number; lastIndexOf(searchElement: undefined, fromIndex?: number): number; every(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: undefined, index: number, array: undefined[]) => void, thisArg?: any): void; map(callbackfn: (value: undefined, index: number, array: undefined[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: undefined, index: number, array: undefined[]) => unknown, thisArg?: any): undefined[]; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduce(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduce(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined): undefined; reduceRight(callbackfn: (previousValue: undefined, currentValue: undefined, currentIndex: number, array: undefined[]) => undefined, initialValue: undefined): undefined; reduceRight(callbackfn: (previousValue: U, currentValue: undefined, currentIndex: number, array: undefined[]) => U, initialValue: U): U; } >([]) : undefined[] >[] : undefined[] >{} : {} diff --git a/tests/baselines/reference/spliceES5.errors.txt b/tests/baselines/reference/spliceES5.errors.txt new file mode 100644 index 0000000000000..448bb37fd2e0d --- /dev/null +++ b/tests/baselines/reference/spliceES5.errors.txt @@ -0,0 +1,11 @@ +tests/cases/compiler/spliceES5.ts(2,16): error TS2555: Expected at least 2 arguments, but got 1. + + +==== tests/cases/compiler/spliceES5.ts (1 errors) ==== + // see #32638 + var arr1 = [0].splice(0) + ~~~~~~~~~ +!!! error TS2555: Expected at least 2 arguments, but got 1. +!!! related TS6210 /.ts/lib.es5.d.ts:1277:27: An argument for 'deleteCount' was not provided. + var arr2 = [0].splice(0, 1) + \ No newline at end of file diff --git a/tests/baselines/reference/spliceES5.js b/tests/baselines/reference/spliceES5.js new file mode 100644 index 0000000000000..d0239c19cb8a9 --- /dev/null +++ b/tests/baselines/reference/spliceES5.js @@ -0,0 +1,10 @@ +//// [spliceES5.ts] +// see #32638 +var arr1 = [0].splice(0) +var arr2 = [0].splice(0, 1) + + +//// [spliceES5.js] +// see #32638 +var arr1 = [0].splice(0); +var arr2 = [0].splice(0, 1); diff --git a/tests/baselines/reference/spliceES5.symbols b/tests/baselines/reference/spliceES5.symbols new file mode 100644 index 0000000000000..fa0b1a5566d01 --- /dev/null +++ b/tests/baselines/reference/spliceES5.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/spliceES5.ts === +// see #32638 +var arr1 = [0].splice(0) +>arr1 : Symbol(arr1, Decl(spliceES5.ts, 1, 3)) +>[0].splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +var arr2 = [0].splice(0, 1) +>arr2 : Symbol(arr2, Decl(spliceES5.ts, 2, 3)) +>[0].splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/spliceES5.types b/tests/baselines/reference/spliceES5.types new file mode 100644 index 0000000000000..42da61a080a30 --- /dev/null +++ b/tests/baselines/reference/spliceES5.types @@ -0,0 +1,21 @@ +=== tests/cases/compiler/spliceES5.ts === +// see #32638 +var arr1 = [0].splice(0) +>arr1 : number[] +>[0].splice(0) : number[] +>[0].splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; } +>[0] : number[] +>0 : 0 +>splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; } +>0 : 0 + +var arr2 = [0].splice(0, 1) +>arr2 : number[] +>[0].splice(0, 1) : number[] +>[0].splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; } +>[0] : number[] +>0 : 0 +>splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; } +>0 : 0 +>1 : 1 + diff --git a/tests/baselines/reference/spliceES6.js b/tests/baselines/reference/spliceES6.js new file mode 100644 index 0000000000000..3fe0519ede9fd --- /dev/null +++ b/tests/baselines/reference/spliceES6.js @@ -0,0 +1,10 @@ +//// [spliceES6.ts] +// see #32638 +var arr1 = [0].splice(0) +var arr2 = [0].splice(0, 1) + + +//// [spliceES6.js] +// see #32638 +var arr1 = [0].splice(0); +var arr2 = [0].splice(0, 1); diff --git a/tests/baselines/reference/spliceES6.symbols b/tests/baselines/reference/spliceES6.symbols new file mode 100644 index 0000000000000..cbfb2a7ef372b --- /dev/null +++ b/tests/baselines/reference/spliceES6.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/spliceES6.ts === +// see #32638 +var arr1 = [0].splice(0) +>arr1 : Symbol(arr1, Decl(spliceES6.ts, 1, 3)) +>[0].splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) + +var arr2 = [0].splice(0, 1) +>arr2 : Symbol(arr2, Decl(spliceES6.ts, 2, 3)) +>[0].splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) + diff --git a/tests/baselines/reference/spliceES6.types b/tests/baselines/reference/spliceES6.types new file mode 100644 index 0000000000000..fc73c584c44e2 --- /dev/null +++ b/tests/baselines/reference/spliceES6.types @@ -0,0 +1,21 @@ +=== tests/cases/compiler/spliceES6.ts === +// see #32638 +var arr1 = [0].splice(0) +>arr1 : number[] +>[0].splice(0) : number[] +>[0].splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; (start: number, deleteCount?: number): number[]; } +>[0] : number[] +>0 : 0 +>splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; (start: number, deleteCount?: number): number[]; } +>0 : 0 + +var arr2 = [0].splice(0, 1) +>arr2 : number[] +>[0].splice(0, 1) : number[] +>[0].splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; (start: number, deleteCount?: number): number[]; } +>[0] : number[] +>0 : 0 +>splice : { (start: number, deleteCount: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; (start: number, deleteCount?: number): number[]; } +>0 : 0 +>1 : 1 + diff --git a/tests/baselines/reference/spreadInvalidArgumentType.types b/tests/baselines/reference/spreadInvalidArgumentType.types index ec1b7faa9ec5a..2dae3fe38ef2b 100644 --- a/tests/baselines/reference/spreadInvalidArgumentType.types +++ b/tests/baselines/reference/spreadInvalidArgumentType.types @@ -73,8 +73,8 @@ function f(p1: T, p2: T[]) { >p1 : T var o2 = { ...p2 }; // OK ->o2 : { [x: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } ->{ ...p2 } : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>o2 : { [x: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>{ ...p2 } : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } >p2 : T[] var o3 = { ...t }; // OK, generic type paramter diff --git a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types index cd907c26ec802..35c7db17f2f8e 100644 --- a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types +++ b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types @@ -319,9 +319,9 @@ class ListWrapper { >index : number >value : T >list.splice(index, 0, value) : T[] ->list.splice : { (start: number, deleteCount?: 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, deleteCount?: 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 @@ -341,9 +341,9 @@ class ListWrapper { list.splice(index, 1); >list.splice(index, 1) : T[] ->list.splice : { (start: number, deleteCount?: 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, deleteCount?: 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 @@ -380,9 +380,9 @@ class ListWrapper { list.splice(index, 1); >list.splice(index, 1) : T[] ->list.splice : { (start: number, deleteCount?: 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, deleteCount?: 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 } @@ -410,9 +410,9 @@ class ListWrapper { list.splice(index, 1); >list.splice(index, 1) : T[] ->list.splice : { (start: number, deleteCount?: 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, deleteCount?: 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 @@ -543,9 +543,9 @@ class ListWrapper { >from : number >length : number >l.splice(from, length) : T[] ->l.splice : { (start: number, deleteCount?: 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, deleteCount?: 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 diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.errors.txt b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.errors.txt index 95eb021c88b72..3d0389b850201 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.errors.txt +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.errors.txt @@ -113,7 +113,7 @@ tests/cases/conformance/es6/templates/taggedTemplateStringsWithOverloadResolutio fn5 `${ (n) => n.toFixed() }`; // will error; 'n' should have type 'string'. ~~~~~~~ !!! error TS2551: Property 'toFixed' does not exist on type 'string'. Did you mean 'fixed'? -!!! related TS2728 /.ts/lib.es2015.core.d.ts:472:5: 'fixed' is declared here. +!!! related TS2728 /.ts/lib.es2015.core.d.ts:481:5: 'fixed' is declared here. fn5 `${ (n) => n.substr(0) }`; \ No newline at end of file diff --git a/tests/cases/compiler/spliceES5.ts b/tests/cases/compiler/spliceES5.ts new file mode 100644 index 0000000000000..6955fa44c2255 --- /dev/null +++ b/tests/cases/compiler/spliceES5.ts @@ -0,0 +1,4 @@ +// @target: es5 +// see #32638 +var arr1 = [0].splice(0) +var arr2 = [0].splice(0, 1) diff --git a/tests/cases/compiler/spliceES6.ts b/tests/cases/compiler/spliceES6.ts new file mode 100644 index 0000000000000..0f1aa8223fd70 --- /dev/null +++ b/tests/cases/compiler/spliceES6.ts @@ -0,0 +1,4 @@ +// @target: es6 +// see #32638 +var arr1 = [0].splice(0) +var arr2 = [0].splice(0, 1)