diff options
Diffstat (limited to 'cli/tsc/dts/lib.es2015.iterable.d.ts')
-rw-r--r-- | cli/tsc/dts/lib.es2015.iterable.d.ts | 168 |
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 { |