Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split Iterator into Iterator and IterableIterator in es6.d.ts #2083

Merged
merged 5 commits into from
Feb 23, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 60 additions & 54 deletions src/lib/es6.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -230,22 +230,22 @@ interface ArrayLike<T> {

interface Array<T> {
/** Iterator */
[Symbol.iterator] (): Iterator<T>;
[Symbol.iterator](): IterableIterator<T>;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting. It returns something htat is both an iterator, and something you can get an iterator off of?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, all the built-in ES6 iterators are like that.


/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, T]>;
entries(): IterableIterator<[number, T]>;

/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns an list of values in the array
*/
values(): Iterator<T>;
values(): IterableIterator<T>;

/**
* Returns the value of the first element in the array where predicate is true, and undefined
Expand Down Expand Up @@ -329,7 +329,7 @@ interface ArrayConstructor {

interface String {
/** Iterator */
[Symbol.iterator] (): Iterator<string>;
[Symbol.iterator](): IterableIterator<string>;

/**
* Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point
Expand Down Expand Up @@ -447,14 +447,19 @@ interface IteratorResult<T> {
}

interface Iterator<T> {
[Symbol.iterator](): Iterator<T>;
next(): IteratorResult<T>;
return?(value?: any): IteratorResult<T>;
throw?(e?: any): IteratorResult<T>;
}

interface Iterable<T> {
[Symbol.iterator](): Iterator<T>;
}

interface IterableIterator<T> extends Iterator<T> {
[Symbol.iterator](): IterableIterator<T>;
}

interface GeneratorFunction extends Function {

}
Expand All @@ -470,10 +475,11 @@ interface GeneratorFunctionConstructor {
}
declare var GeneratorFunction: GeneratorFunctionConstructor;

interface Generator<T> extends Iterator<T> {
interface Generator<T> extends IterableIterator<T> {
next(value?: any): IteratorResult<T>;
throw (exception: any): IteratorResult<T>;
return (value: T): IteratorResult<T>;
throw(exception: any): IteratorResult<T>;
return(value: T): IteratorResult<T>;
[Symbol.iterator](): Generator<T>;
[Symbol.toStringTag]: string;
}

Expand Down Expand Up @@ -641,15 +647,15 @@ interface RegExp {
interface Map<K, V> {
clear(): void;
delete(key: K): boolean;
entries(): Iterator<[K, V]>;
entries(): IterableIterator<[K, V]>;
forEach(callbackfn: (value: V, index: K, map: Map<K, V>) => void, thisArg?: any): void;
get(key: K): V;
has(key: K): boolean;
keys(): Iterator<K>;
keys(): IterableIterator<K>;
set(key: K, value?: V): Map<K, V>;
size: number;
values(): Iterator<V>;
[Symbol.iterator]():Iterator<[K,V]>;
values(): IterableIterator<V>;
[Symbol.iterator]():IterableIterator<[K,V]>;
[Symbol.toStringTag]: string;
}

Expand Down Expand Up @@ -680,13 +686,13 @@ interface Set<T> {
add(value: T): Set<T>;
clear(): void;
delete(value: T): boolean;
entries(): Iterator<[T, T]>;
entries(): IterableIterator<[T, T]>;
forEach(callbackfn: (value: T, index: T, set: Set<T>) => void, thisArg?: any): void;
has(value: T): boolean;
keys(): Iterator<T>;
keys(): IterableIterator<T>;
size: number;
values(): Iterator<T>;
[Symbol.iterator]():Iterator<T>;
values(): IterableIterator<T>;
[Symbol.iterator]():IterableIterator<T>;
[Symbol.toStringTag]: string;
}

Expand Down Expand Up @@ -917,7 +923,7 @@ interface Int8Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -997,7 +1003,7 @@ interface Int8Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -1134,10 +1140,10 @@ interface Int8Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Int8ArrayConstructor {
Expand Down Expand Up @@ -1207,7 +1213,7 @@ interface Uint8Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -1287,7 +1293,7 @@ interface Uint8Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -1424,10 +1430,10 @@ interface Uint8Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Uint8ArrayConstructor {
Expand Down Expand Up @@ -1497,7 +1503,7 @@ interface Uint8ClampedArray {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -1577,7 +1583,7 @@ interface Uint8ClampedArray {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -1714,10 +1720,10 @@ interface Uint8ClampedArray {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Uint8ClampedArrayConstructor {
Expand Down Expand Up @@ -1787,7 +1793,7 @@ interface Int16Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -1867,7 +1873,7 @@ interface Int16Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -2004,10 +2010,10 @@ interface Int16Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Int16ArrayConstructor {
Expand Down Expand Up @@ -2077,7 +2083,7 @@ interface Uint16Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -2157,7 +2163,7 @@ interface Uint16Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -2294,10 +2300,10 @@ interface Uint16Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Uint16ArrayConstructor {
Expand Down Expand Up @@ -2367,7 +2373,7 @@ interface Int32Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -2447,7 +2453,7 @@ interface Int32Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -2584,10 +2590,10 @@ interface Int32Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Int32ArrayConstructor {
Expand Down Expand Up @@ -2657,7 +2663,7 @@ interface Uint32Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -2737,7 +2743,7 @@ interface Uint32Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -2874,10 +2880,10 @@ interface Uint32Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Uint32ArrayConstructor {
Expand Down Expand Up @@ -2947,7 +2953,7 @@ interface Float32Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -3027,7 +3033,7 @@ interface Float32Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -3164,10 +3170,10 @@ interface Float32Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Float32ArrayConstructor {
Expand Down Expand Up @@ -3237,7 +3243,7 @@ interface Float64Array {
/**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): Iterator<[number, number]>;
entries(): IterableIterator<[number, number]>;

/**
* Determines whether all the members of an array satisfy the specified test.
Expand Down Expand Up @@ -3317,7 +3323,7 @@ interface Float64Array {
/**
* Returns an list of keys in the array
*/
keys(): Iterator<number>;
keys(): IterableIterator<number>;

/**
* Returns the index of the last occurrence of a value in an array.
Expand Down Expand Up @@ -3454,10 +3460,10 @@ interface Float64Array {
/**
* Returns an list of values in the array
*/
values(): Iterator<number>;
values(): IterableIterator<number>;

[index: number]: number;
[Symbol.iterator] (): Iterator<number>;
[Symbol.iterator](): IterableIterator<number>;
}

interface Float64ArrayConstructor {
Expand Down Expand Up @@ -3516,7 +3522,7 @@ declare var Reflect: {
construct(target: Function, argumentsList: ArrayLike<any>): any;
defineProperty(target: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
deleteProperty(target: any, propertyKey: PropertyKey): boolean;
enumerate(target: any): Iterator<any>;
enumerate(target: any): IterableIterator<any>;
get(target: any, propertyKey: PropertyKey, receiver?: any): any;
getOwnPropertyDescriptor(target: any, propertyKey: PropertyKey): PropertyDescriptor;
getPrototypeOf(target: any): any;
Expand Down