=== tests/cases/conformance/es6/destructuring/iterableArrayPattern11.ts === function fun([a, b] = new FooIterator) { } >fun : ([a, b]?: FooIterator) => void >a : Foo >b : Foo >new FooIterator : FooIterator >FooIterator : typeof FooIterator fun(new FooIterator); >fun(new FooIterator) : void >fun : ([a, b]?: FooIterator) => void >new FooIterator : FooIterator >FooIterator : typeof FooIterator class Bar { x } >Bar : Bar >x : any class Foo extends Bar { y } >Foo : Foo >Bar : Bar >y : any class FooIterator { >FooIterator : FooIterator next() { >next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, >value : Foo >new Foo : Foo >Foo : typeof Foo done: false >done : boolean >false : boolean }; } [Symbol.iterator]() { >Symbol.iterator : symbol >Symbol : SymbolConstructor >iterator : symbol return this; >this : FooIterator } }