class A { self() { return this; } } function f(x: T) { function g(x: U) { x = x.self(); } x = x.self(); } class B { foo(x: T) { x = x.self(); } bar(x: U) { x = x.self(); } }