==== tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints4.ts (4 errors) ==== class C { f() { var x: T; var a = x['notHere'](); // should be string return a + x.notHere(); ~~~~~~~ !!! Property 'notHere' does not exist on type 'T'. } } var r = (new C()).f(); interface I { foo: T; } var i: I; var r2 = i.foo.notHere(); ~~~~~~~ !!! Property 'notHere' does not exist on type 'Date'. var r2b = i.foo['notHere'](); var a: { (): T; } var r3: string = a().notHere(); ~~~~~~~ !!! Property 'notHere' does not exist on type 'Date'. var r3b: string = a()['notHere'](); var b = { foo: (x: T): T => { var a = x['notHere'](); // should be string return a + x.notHere(); ~~~~~~~ !!! Property 'notHere' does not exist on type 'T'. }, bar: b.foo().notHere() } var r4 = b.foo(new Date());