//// [iteratorSpreadInCall7.ts] foo(...new SymbolIterator, ...new StringIterator); function foo(...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; } }