Index: es2015.iterable.d.ts
===================================================================
--- es2015.iterable.d.ts
+++ es2015.iterable.d.ts
@@ -20,24 +20,23 @@
type IteratorResult<T, TReturn = any> =
| IteratorYieldResult<T>
| IteratorReturnResult<TReturn>;
-
-interface Iterator<T, TReturn = any, TNext = any> {
+interface Iterator<T, TReturn = unknown, TNext = undefined> {
// NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
next(...[value]: [] | [TNext]): IteratorResult<T, TReturn>;
return?(value?: TReturn): IteratorResult<T, TReturn>;
throw?(e?: any): IteratorResult<T, TReturn>;
}
-interface Iterable<T, TReturn = any, TNext = any> {
+interface Iterable<T, TReturn = unknown, TNext = undefined> {
[Symbol.iterator](): Iterator<T, TReturn, TNext>;
}
/**
* Describes a user-defined {@link Iterator} that is also iterable.
*/
-interface IterableIterator<T, TReturn = any, TNext = any>
+interface IterableIterator<T, TReturn = undefined, TNext = void>
extends Iterator<T, TReturn, TNext> {
[Symbol.iterator](): IterableIterator<T, TReturn, TNext>;
}
@@ -92,12 +91,12 @@
* @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T, U>(
+ from<T, U, This = undefined>(
iterable: Iterable<T> | ArrayLike<T>,
- mapfn: (v: T, k: number) => U,
- thisArg?: any,
+ mapfn: (this: This, v: T, k: number) => U,
+ thisArg?: This,
): U[];
}
interface ReadonlyArray<T> {
@@ -121,9 +120,9 @@
}
interface IArguments {
/** Iterator */
- [Symbol.iterator](): ArrayIterator<any>;
+ [Symbol.iterator](): ArrayIterator<unknown>;
}
interface MapIterator<T>
extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
@@ -170,9 +169,8 @@
values(): MapIterator<V>;
}
interface MapConstructor {
- new (): Map<any, any>;
new <K, V>(iterable?: Iterable<readonly [K, V]> | null): Map<K, V>;
}
interface WeakMap<K extends WeakKey, V> {}
@@ -246,17 +244,17 @@
* resolve, or rejected when any Promise is rejected.
* @param values An iterable of Promises.
* @returns A new Promise.
*/
- all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;
+ all<T>(values: Iterable<T>): Promise<Awaited<T>[]>;
/**
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
* or rejected.
* @param values An iterable of Promises.
* @returns A new Promise.
*/
- race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;
+ race<T>(values: Iterable<T>): Promise<Awaited<T>>;
}
interface StringIterator<T>
extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
@@ -288,25 +286,23 @@
}
interface Int8ArrayConstructor {
new (elements: Iterable<number>): Int8Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Int8Array<ArrayBuffer>;
-
+ from(iterable: Iterable<number> | ArrayLike<number>): Int8Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Int8Array<ArrayBuffer>;
}
interface Uint8Array<TArrayBuffer extends ArrayBufferLike> {
@@ -329,25 +325,23 @@
}
interface Uint8ArrayConstructor {
new (elements: Iterable<number>): Uint8Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Uint8Array<ArrayBuffer>;
-
+ from(iterable: Iterable<number> | ArrayLike<number>): Uint8Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Uint8Array<ArrayBuffer>;
}
interface Uint8ClampedArray<TArrayBuffer extends ArrayBufferLike> {
@@ -370,25 +364,25 @@
}
interface Uint8ClampedArrayConstructor {
new (elements: Iterable<number>): Uint8ClampedArray<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Uint8ClampedArray<ArrayBuffer>;
-
+ from(
+ iterable: Iterable<number> | ArrayLike<number>,
+ ): Uint8ClampedArray<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Uint8ClampedArray<ArrayBuffer>;
}
interface Int16Array<TArrayBuffer extends ArrayBufferLike> {
@@ -410,25 +404,23 @@
}
interface Int16ArrayConstructor {
new (elements: Iterable<number>): Int16Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Int16Array<ArrayBuffer>;
-
+ from(iterable: Iterable<number> | ArrayLike<number>): Int16Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Int16Array<ArrayBuffer>;
}
interface Uint16Array<TArrayBuffer extends ArrayBufferLike> {
@@ -451,25 +443,25 @@
}
interface Uint16ArrayConstructor {
new (elements: Iterable<number>): Uint16Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Uint16Array<ArrayBuffer>;
-
+ from(
+ iterable: Iterable<number> | ArrayLike<number>,
+ ): Uint16Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Uint16Array<ArrayBuffer>;
}
interface Int32Array<TArrayBuffer extends ArrayBufferLike> {
@@ -492,25 +484,23 @@
}
interface Int32ArrayConstructor {
new (elements: Iterable<number>): Int32Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Int32Array<ArrayBuffer>;
-
+ from(iterable: Iterable<number> | ArrayLike<number>): Int32Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Int32Array<ArrayBuffer>;
}
interface Uint32Array<TArrayBuffer extends ArrayBufferLike> {
@@ -533,25 +523,25 @@
}
interface Uint32ArrayConstructor {
new (elements: Iterable<number>): Uint32Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Uint32Array<ArrayBuffer>;
-
+ from(
+ iterable: Iterable<number> | ArrayLike<number>,
+ ): Uint32Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Uint32Array<ArrayBuffer>;
}
interface Float32Array<TArrayBuffer extends ArrayBufferLike> {
@@ -574,25 +564,25 @@
}
interface Float32ArrayConstructor {
new (elements: Iterable<number>): Float32Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Float32Array<ArrayBuffer>;
-
+ from(
+ iterable: Iterable<number> | ArrayLike<number>,
+ ): Float32Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Float32Array<ArrayBuffer>;
}
interface Float64Array<TArrayBuffer extends ArrayBufferLike> {
@@ -615,23 +605,23 @@
}
interface Float64ArrayConstructor {
new (elements: Iterable<number>): Float64Array<ArrayBuffer>;
-
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
*/
- from(elements: Iterable<number>): Float64Array<ArrayBuffer>;
-
+ from(
+ iterable: Iterable<number> | ArrayLike<number>,
+ ): Float64Array<ArrayBuffer>;
/**
- * Creates an array from an array-like or iterable object.
- * @param elements An iterable object to convert to an array.
+ * Creates an array from an iterable object.
+ * @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from<T>(
- elements: Iterable<T>,
- mapfn?: (v: T, k: number) => number,
- thisArg?: any,
+ from<T, This = undefined>(
+ iterable: Iterable<T> | ArrayLike<T>,
+ mapfn: (this: This, v: T, k: number) => number,
+ thisArg?: This,
): Float64Array<ArrayBuffer>;
}