thisInObjectLiterals.ts(2,5): error TS2564: Property 't' has no initializer and is not definitely assigned in the constructor.
thisInObjectLiterals.ts(14,5): error TS7023: 'f' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.
thisInObjectLiterals.ts(15,21): error TS2339: Property 'spaaace' does not exist on type '{ f(): any; }'.


==== thisInObjectLiterals.ts (3 errors) ====
    class MyClass {
        t: number;
        ~
!!! error TS2564: Property 't' has no initializer and is not definitely assigned in the constructor.
    
        fn() {
            type ContainingThis = this;
            //type of 'this' in an object literal is the containing scope's this
            var t = { x: this, y: this.t };
            var t: { x: ContainingThis; y: number };
        }
    }
    
    //type of 'this' in an object literal method is the type of the object literal
    var obj = {
        f() {
        ~
!!! error TS7023: 'f' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.
            return this.spaaace;
                        ~~~~~~~
!!! error TS2339: Property 'spaaace' does not exist on type '{ f(): any; }'.
        }
    };
    var obj: { f: () => any; };
    