==== tests/cases/compiler/classMemberInitializerWithLamdaScoping.ts (1 errors) ==== declare var console: { log(msg?: any): void; }; class Test { constructor(private field: string) { } messageHandler = () => { var field = this.field; console.log(field); // Using field here shouldnt be error }; static field: number; static staticMessageHandler = () => { var field = Test.field; console.log(field); // Using field here shouldnt be error }; } var field1: string; class Test1 { constructor(private field1: string) { } messageHandler = () => { console.log(field1); // But this should be error as the field1 will resolve to var field1 ~~~~~~ !!! Initializer of instance member variable 'messageHandler' cannot reference identifier 'field1' declared in the constructor. // but since this code would be generated inside constructor, in generated js // it would resolve to private field1 and thats not what user intended here. }; static staticMessageHandler = () => { console.log(field1); // This shouldnt be error as its a static property }; }