intelephense
1.14.41.16.1
lib/lib.es2015.iterable.d.tslib/lib.es2015.iterable.d.ts+214−104
Index: package/lib/lib.es2015.iterable.d.ts
===================================================================
--- package/lib/lib.es2015.iterable.d.ts
+++ package/lib/lib.es2015.iterable.d.ts
@@ -37,41 +37,61 @@
}
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 {
/**
@@ -90,69 +110,73 @@
}
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 {
new (): Map<any, any>;
@@ -164,44 +188,50 @@
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 {
new <T>(iterable?: Iterable<T> | null): Set<T>;
@@ -232,264 +262,344 @@
*/
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>;
+interface Int8Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Int8Array;
+ new (elements: Iterable<number>): Int8Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Int8Array<ArrayBuffer>;
}
-interface Uint8Array {
- [Symbol.iterator](): IterableIterator<number>;
+interface Uint8Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Uint8Array;
+ new (elements: Iterable<number>): Uint8Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint8Array<ArrayBuffer>;
}
-interface Uint8ClampedArray {
- [Symbol.iterator](): IterableIterator<number>;
+interface Uint8ClampedArray<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Uint8ClampedArray;
+ new (elements: Iterable<number>): Uint8ClampedArray<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray<ArrayBuffer>;
}
-interface Int16Array {
- [Symbol.iterator](): IterableIterator<number>;
+interface Int16Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Int16Array;
+ new (elements: Iterable<number>): Int16Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Int16Array<ArrayBuffer>;
}
-interface Uint16Array {
- [Symbol.iterator](): IterableIterator<number>;
+interface Uint16Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Uint16Array;
+ new (elements: Iterable<number>): Uint16Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint16Array<ArrayBuffer>;
}
-interface Int32Array {
- [Symbol.iterator](): IterableIterator<number>;
+interface Int32Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Int32Array;
+ new (elements: Iterable<number>): Int32Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Int32Array<ArrayBuffer>;
}
-interface Uint32Array {
- [Symbol.iterator](): IterableIterator<number>;
+interface Uint32Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Uint32Array;
+ new (elements: Iterable<number>): Uint32Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint32Array<ArrayBuffer>;
}
-interface Float32Array {
- [Symbol.iterator](): IterableIterator<number>;
+interface Float32Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Float32Array;
+ new (elements: Iterable<number>): Float32Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Float32Array<ArrayBuffer>;
}
-interface Float64Array {
- [Symbol.iterator](): IterableIterator<number>;
+interface Float64Array<TArrayBuffer extends ArrayBufferLike> {
+ [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 {
- new (elements: Iterable<number>): Float64Array;
+ new (elements: Iterable<number>): Float64Array<ArrayBuffer>;
/**
* Creates an array from an array-like or iterable object.
- * @param arrayLike An array-like or iterable object to convert to an array.
+ * @param elements An iterable object to convert to an array.
+ */
+ from(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.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
- from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Float64Array<ArrayBuffer>;
}