==== tests/cases/conformance/expressions/thisKeyword/thisInInvalidContextsExternalModule.ts (9 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 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 TS1003: Identifier expected. ~ !!! error TS1005: ';' expected. } //'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 external modules unless the '--module' flag is provided. ~~~~ !!! error TS1003: Identifier expected.