tests/cases/conformance/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts(4,9): error TS2304: Cannot find name 'x'. tests/cases/conformance/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts(5,15): error TS2304: Cannot find name 'x'. tests/cases/conformance/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts(10,9): error TS2304: Cannot find name 'x'. tests/cases/conformance/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts(11,15): error TS2304: Cannot find name 'x'. tests/cases/conformance/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts(17,15): error TS1003: Identifier expected. tests/cases/conformance/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts(23,9): error TS2304: Cannot find name 'x'. ==== tests/cases/conformance/classes/propertyMemberDeclarations/initializerReferencingConstructorParameters.ts (6 errors) ==== // Initializer expressions for instance member variables are evaluated in the scope of the class constructor body but are not permitted to reference parameters or local variables of the constructor. class C { a = x; // error ~ !!! error TS2304: Cannot find name 'x'. b: typeof x; // error ~ !!! error TS2304: Cannot find name 'x'. constructor(x) { } } class D { a = x; // error ~ !!! error TS2304: Cannot find name 'x'. b: typeof x; // error ~ !!! error TS2304: Cannot find name 'x'. constructor(public x) { } } class E { a = this.x; // ok b: typeof this.x; // error ~~~~ !!! error TS1003: Identifier expected. constructor(public x) { } } class F { a = this.x; // ok b = x; // error ~ !!! error TS2304: Cannot find name 'x'. constructor(public x: T) { } }