//@target: ES6 class C { private [Symbol.iterator]: { x }; } interface I { [Symbol.iterator]: { x }; } declare function foo(i: I): I; declare function foo(a: any): any; declare function bar(i: C): C; declare function bar(a: any): any; foo(new C); var i: I; bar(i);