//@target: ES6 class StringIterator { [Symbol.iterator]() { return this; } } var v: string; for (v of new StringIterator) { } // Should fail for (v of new StringIterator) { } // Should still fail (related errors should still be shown even though type is cached).