class B { foo(x: T): T { return null; } } var x: B; x.foo(1); // no error var f = (x: B) => { return x.foo(1); } // error var f2 = (x: B) => { return x.foo(1); } // error var f3 = (x: B) => { return x.foo(1); } // error var f4 = (x: B) => { return x.foo(1); } // no error