Don't use 'any[]' - return type are bivariant when relating to overloads.

This commit is contained in:
Daniel Rosenwasser 2019-05-01 11:48:09 -07:00
parent b0100100a1
commit b5ffc26b95

View file

@ -1400,8 +1400,8 @@ namespace ts {
/** Shims `Array.from`. */
export function arrayFrom<T, U>(iterator: Iterator<T> | IterableIterator<T>, map: (t: T) => U): U[];
export function arrayFrom<T>(iterator: Iterator<T> | IterableIterator<T>): T[];
export function arrayFrom(iterator: Iterator<any> | IterableIterator<any>, map?: (t: any) => any): any[] {
const result: any[] = [];
export function arrayFrom<T, U>(iterator: Iterator<T> | IterableIterator<T>, map?: (t: T) => U): (T | U)[] {
const result: (T | U)[] = [];
for (let { value, done } = iterator.next(); !done; { value, done } = iterator.next()) {
result.push(map ? map(value) : value);
}