tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(3,16): error TS2334: 'this' cannot be referenced in a static property initializer. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(22,15): error TS2332: 'this' cannot be referenced in current location. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(28,13): error TS2331: 'this' cannot be referenced in a module or namespace body. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(38,25): error TS9002: Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(44,9): error TS2332: 'this' cannot be referenced in current location. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(45,9): error TS2332: 'this' cannot be referenced in current location. tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts(48,1): error TS1148: Cannot compile modules unless the '--module' flag is provided. ==== tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts (7 errors) ==== //'this' in static member initializer class ErrClass1 { static t = this; // Error ~~~~ !!! error TS2334: 'this' cannot be referenced in a static property initializer. } class BaseErrClass { constructor(t: any) { } } class ClassWithNoInitializer extends BaseErrClass { t; //'this' in optional super call constructor() { super(this); // OK } } class ClassWithInitializer extends BaseErrClass { t = 4; //'this' in required super call constructor() { super(this); // Error ~~~~ !!! error TS2332: 'this' cannot be referenced in current location. } } module M { //'this' in module variable var x = this; // Error ~~~~ !!! error TS2331: 'this' cannot be referenced in a module or namespace body. } //'this' as type parameter constraint // function fn() { } // Error //'this' as a type argument function genericFunc(x: T) { } genericFunc(undefined); // Should be an error class ErrClass3 extends this { ~~~~ !!! error TS9002: Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses. } //'this' as a computed enum value enum SomeEnum { A = this, // Should not be allowed ~~~~ !!! error TS2332: 'this' cannot be referenced in current location. B = this.spaaaace // Also should not be allowed ~~~~ !!! error TS2332: 'this' cannot be referenced in current location. } export = this; // Should be an error ~~~~~~~~~~~~~~ !!! error TS1148: Cannot compile modules unless the '--module' flag is provided.