58 lines
985 B
TypeScript
58 lines
985 B
TypeScript
|
//// [iteratorSpreadInCall7.ts]
|
||
|
foo(...new SymbolIterator, ...new StringIterator);
|
||
|
|
||
|
function foo<T>(...s: T[]) { return s[0]; }
|
||
|
class SymbolIterator {
|
||
|
next() {
|
||
|
return {
|
||
|
value: Symbol(),
|
||
|
done: false
|
||
|
};
|
||
|
}
|
||
|
|
||
|
[Symbol.iterator]() {
|
||
|
return this;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class StringIterator {
|
||
|
next() {
|
||
|
return {
|
||
|
value: "",
|
||
|
done: false
|
||
|
};
|
||
|
}
|
||
|
|
||
|
[Symbol.iterator]() {
|
||
|
return this;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//// [iteratorSpreadInCall7.js]
|
||
|
foo(...new SymbolIterator, ...new StringIterator);
|
||
|
function foo(...s) {
|
||
|
return s[0];
|
||
|
}
|
||
|
class SymbolIterator {
|
||
|
next() {
|
||
|
return {
|
||
|
value: Symbol(),
|
||
|
done: false
|
||
|
};
|
||
|
}
|
||
|
[Symbol.iterator]() {
|
||
|
return this;
|
||
|
}
|
||
|
}
|
||
|
class StringIterator {
|
||
|
next() {
|
||
|
return {
|
||
|
value: "",
|
||
|
done: false
|
||
|
};
|
||
|
}
|
||
|
[Symbol.iterator]() {
|
||
|
return this;
|
||
|
}
|
||
|
}
|