==== tests/cases/conformance/expressions/thisKeyword/thisInInvalidContexts.ts (7 errors) ==== //'this' in static member initializer class ErrClass1 { static t = this; // Error ~~~~ !!! '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 ~~~~ !!! 'this' cannot be referenced in current location. } } module M { //'this' in module variable var x = this; // Error ~~~~ !!! '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 { ~~~~ !!! Identifier expected. ~ !!! ';' expected. } //'this' as a computed enum value enum SomeEnum { A = this, // Should not be allowed ~~~~ !!! 'this' cannot be referenced in current location. B = this.spaaaace // Also should not be allowed ~~~~ !!! 'this' cannot be referenced in current location. }