mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-16 07:13:45 -05:00
Array.concat now takes ConcatArray, not ReadonlyArray (#21462)
* Overloads in Array.concat now handle ReadonlyArray Previously it was union types, which is slower. * Make arrayConcat3 test stricter * Switch to InputArray instead of adding overloads * Update baselines * Update baselines correctly * Rename to ConcatArray and add slice method Should make it, respectively, easier to understand this specific type and harder to satisfy it by mistake.
This commit is contained in:
committed by
GitHub
parent
2c3b69336f
commit
be0fcd5174
15
src/lib/es5.d.ts
vendored
15
src/lib/es5.d.ts
vendored
@@ -992,12 +992,12 @@ interface ReadonlyArray<T> {
|
||||
* Combines two or more arrays.
|
||||
* @param items Additional items to add to the end of array1.
|
||||
*/
|
||||
concat(...items: (T[] | ReadonlyArray<T>)[]): T[];
|
||||
concat(...items: ConcatArray<T>[]): T[];
|
||||
/**
|
||||
* Combines two or more arrays.
|
||||
* @param items Additional items to add to the end of array1.
|
||||
*/
|
||||
concat(...items: (T | T[] | ReadonlyArray<T>)[]): T[];
|
||||
concat(...items: (T | ConcatArray<T>)[]): T[];
|
||||
/**
|
||||
* Adds all the elements of an array separated by the specified separator string.
|
||||
* @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.
|
||||
@@ -1087,6 +1087,13 @@ interface ReadonlyArray<T> {
|
||||
readonly [n: number]: T;
|
||||
}
|
||||
|
||||
interface ConcatArray<T> {
|
||||
readonly length: number;
|
||||
readonly [n: number]: T;
|
||||
join(separator?: string): string;
|
||||
slice(start?: number, end?: number): T[];
|
||||
}
|
||||
|
||||
interface Array<T> {
|
||||
/**
|
||||
* Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.
|
||||
@@ -1113,12 +1120,12 @@ interface Array<T> {
|
||||
* Combines two or more arrays.
|
||||
* @param items Additional items to add to the end of array1.
|
||||
*/
|
||||
concat(...items: (T[] | ReadonlyArray<T>)[]): T[];
|
||||
concat(...items: ConcatArray<T>[]): T[];
|
||||
/**
|
||||
* Combines two or more arrays.
|
||||
* @param items Additional items to add to the end of array1.
|
||||
*/
|
||||
concat(...items: (T | T[] | ReadonlyArray<T>)[]): T[];
|
||||
concat(...items: (T | ConcatArray<T>)[]): T[];
|
||||
/**
|
||||
* Adds all the elements of an array separated by the specified separator string.
|
||||
* @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.
|
||||
|
||||
Reference in New Issue
Block a user