summaryrefslogtreecommitdiff
path: root/cli/tsc/dts/lib.es2015.iterable.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tsc/dts/lib.es2015.iterable.d.ts')
-rw-r--r--cli/tsc/dts/lib.es2015.iterable.d.ts168
1 files changed, 100 insertions, 68 deletions
diff --git a/cli/tsc/dts/lib.es2015.iterable.d.ts b/cli/tsc/dts/lib.es2015.iterable.d.ts
index 3ad043c67..eaff26d9a 100644
--- a/cli/tsc/dts/lib.es2015.iterable.d.ts
+++ b/cli/tsc/dts/lib.es2015.iterable.d.ts
@@ -38,39 +38,59 @@ interface IteratorReturnResult<TReturn> {
type IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;
-interface Iterator<T, TReturn = any, TNext = undefined> {
+interface Iterator<T, TReturn = any, TNext = any> {
// NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
- next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
+ next(...[value]: [] | [TNext]): IteratorResult<T, TReturn>;
return?(value?: TReturn): IteratorResult<T, TReturn>;
throw?(e?: any): IteratorResult<T, TReturn>;
}
-interface Iterable<T> {
- [Symbol.iterator](): Iterator<T>;
+interface Iterable<T, TReturn = any, TNext = any> {
+ [Symbol.iterator](): Iterator<T, TReturn, TNext>;
}
-interface IterableIterator<T> extends Iterator<T> {
- [Symbol.iterator](): IterableIterator<T>;
+/**
+ * Describes a user-defined {@link Iterator} that is also iterable.
+ */
+interface IterableIterator<T, TReturn = any, TNext = any> extends Iterator<T, TReturn, TNext> {
+ [Symbol.iterator](): IterableIterator<T, TReturn, TNext>;
+}
+
+/**
+ * Describes an {@link Iterator} produced by the runtime that inherits from the intrinsic `Iterator.prototype`.
+ */
+interface IteratorObject<T, TReturn = unknown, TNext = unknown> extends Iterator<T, TReturn, TNext> {
+ [Symbol.iterator](): IteratorObject<T, TReturn, TNext>;
+}
+
+/**
+ * Defines the `TReturn` type used for built-in iterators produced by `Array`, `Map`, `Set`, and others.
+ * This is `undefined` when `strictBuiltInIteratorReturn` is `true`; otherwise, this is `any`.
+ */
+type BuiltinIteratorReturn = intrinsic;
+
+interface ArrayIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
+ [Symbol.iterator](): ArrayIterator<T>;
}
interface Array<T> {
/** Iterator */
- [Symbol.iterator](): IterableIterator<T>;
+ [Symbol.iterator](): ArrayIterator<T>;
/**
* Returns an iterable of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, T]>;
+ entries(): ArrayIterator<[number, T]>;
/**
* Returns an iterable of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an iterable of values in the array
*/
- values(): IterableIterator<T>;
+ values(): ArrayIterator<T>;
}
interface ArrayConstructor {
@@ -91,67 +111,71 @@ interface ArrayConstructor {
interface ReadonlyArray<T> {
/** Iterator of values in the array. */
- [Symbol.iterator](): IterableIterator<T>;
+ [Symbol.iterator](): ArrayIterator<T>;
/**
* Returns an iterable of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, T]>;
+ entries(): ArrayIterator<[number, T]>;
/**
* Returns an iterable of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an iterable of values in the array
*/
- values(): IterableIterator<T>;
+ values(): ArrayIterator<T>;
}
interface IArguments {
/** Iterator */
- [Symbol.iterator](): IterableIterator<any>;
+ [Symbol.iterator](): ArrayIterator<any>;
+}
+
+interface MapIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
+ [Symbol.iterator](): MapIterator<T>;
}
interface Map<K, V> {
/** Returns an iterable of entries in the map. */
- [Symbol.iterator](): IterableIterator<[K, V]>;
+ [Symbol.iterator](): MapIterator<[K, V]>;
/**
* Returns an iterable of key, value pairs for every entry in the map.
*/
- entries(): IterableIterator<[K, V]>;
+ entries(): MapIterator<[K, V]>;
/**
* Returns an iterable of keys in the map
*/
- keys(): IterableIterator<K>;
+ keys(): MapIterator<K>;
/**
* Returns an iterable of values in the map
*/
- values(): IterableIterator<V>;
+ values(): MapIterator<V>;
}
interface ReadonlyMap<K, V> {
/** Returns an iterable of entries in the map. */
- [Symbol.iterator](): IterableIterator<[K, V]>;
+ [Symbol.iterator](): MapIterator<[K, V]>;
/**
* Returns an iterable of key, value pairs for every entry in the map.
*/
- entries(): IterableIterator<[K, V]>;
+ entries(): MapIterator<[K, V]>;
/**
* Returns an iterable of keys in the map
*/
- keys(): IterableIterator<K>;
+ keys(): MapIterator<K>;
/**
* Returns an iterable of values in the map
*/
- values(): IterableIterator<V>;
+ values(): MapIterator<V>;
}
interface MapConstructor {
@@ -165,42 +189,46 @@ interface WeakMapConstructor {
new <K extends WeakKey, V>(iterable: Iterable<readonly [K, V]>): WeakMap<K, V>;
}
+interface SetIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
+ [Symbol.iterator](): SetIterator<T>;
+}
+
interface Set<T> {
/** Iterates over values in the set. */
- [Symbol.iterator](): IterableIterator<T>;
+ [Symbol.iterator](): SetIterator<T>;
/**
* Returns an iterable of [v,v] pairs for every value `v` in the set.
*/
- entries(): IterableIterator<[T, T]>;
+ entries(): SetIterator<[T, T]>;
/**
* Despite its name, returns an iterable of the values in the set.
*/
- keys(): IterableIterator<T>;
+ keys(): SetIterator<T>;
/**
* Returns an iterable of values in the set.
*/
- values(): IterableIterator<T>;
+ values(): SetIterator<T>;
}
interface ReadonlySet<T> {
/** Iterates over values in the set. */
- [Symbol.iterator](): IterableIterator<T>;
+ [Symbol.iterator](): SetIterator<T>;
/**
* Returns an iterable of [v,v] pairs for every value `v` in the set.
*/
- entries(): IterableIterator<[T, T]>;
+ entries(): SetIterator<[T, T]>;
/**
* Despite its name, returns an iterable of the values in the set.
*/
- keys(): IterableIterator<T>;
+ keys(): SetIterator<T>;
/**
* Returns an iterable of values in the set.
*/
- values(): IterableIterator<T>;
+ values(): SetIterator<T>;
}
interface SetConstructor {
@@ -233,25 +261,29 @@ interface PromiseConstructor {
race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;
}
+interface StringIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
+ [Symbol.iterator](): StringIterator<T>;
+}
+
interface String {
/** Iterator */
- [Symbol.iterator](): IterableIterator<string>;
+ [Symbol.iterator](): StringIterator<string>;
}
interface Int8Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Int8ArrayConstructor {
@@ -267,19 +299,19 @@ interface Int8ArrayConstructor {
}
interface Uint8Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Uint8ArrayConstructor {
@@ -295,21 +327,21 @@ interface Uint8ArrayConstructor {
}
interface Uint8ClampedArray {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Uint8ClampedArrayConstructor {
@@ -325,21 +357,21 @@ interface Uint8ClampedArrayConstructor {
}
interface Int16Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Int16ArrayConstructor {
@@ -355,19 +387,19 @@ interface Int16ArrayConstructor {
}
interface Uint16Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Uint16ArrayConstructor {
@@ -383,19 +415,19 @@ interface Uint16ArrayConstructor {
}
interface Int32Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Int32ArrayConstructor {
@@ -411,19 +443,19 @@ interface Int32ArrayConstructor {
}
interface Uint32Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Uint32ArrayConstructor {
@@ -439,19 +471,19 @@ interface Uint32ArrayConstructor {
}
interface Float32Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Float32ArrayConstructor {
@@ -467,19 +499,19 @@ interface Float32ArrayConstructor {
}
interface Float64Array {
- [Symbol.iterator](): IterableIterator<number>;
+ [Symbol.iterator](): ArrayIterator<number>;
/**
* Returns an array of key, value pairs for every entry in the array
*/
- entries(): IterableIterator<[number, number]>;
+ entries(): ArrayIterator<[number, number]>;
/**
* Returns an list of keys in the array
*/
- keys(): IterableIterator<number>;
+ keys(): ArrayIterator<number>;
/**
* Returns an list of values in the array
*/
- values(): IterableIterator<number>;
+ values(): ArrayIterator<number>;
}
interface Float64ArrayConstructor {