foo1.ts(5,3): error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor.
foo1.ts(9,12): error TS2339: Property 'x' does not exist on type 'C1'.
foo2.ts(5,3): error TS2564: Property 'y' has no initializer and is not definitely assigned in the constructor.
foo2.ts(8,12): error TS2339: Property 'y' does not exist on type 'C1'.
foo2.ts(13,8): error TS2339: Property 'x' does not exist on type 'C1'.


==== foo2.ts (3 errors) ====
    import foo1 = require('./foo1');
    export namespace M1 {
    	export class C1 {
    		m1: foo1.M1.C1;
    		y: number
    		~
!!! error TS2564: Property 'y' has no initializer and is not definitely assigned in the constructor.
    		constructor(){
    			this.m1 = new foo1.M1.C1();
    			this.m1.y = 10; // Error
    			        ~
!!! error TS2339: Property 'y' does not exist on type 'C1'.
    			this.m1.x = 20; // OK
    
    			var tmp = new M1.C1();
    			tmp.y = 10; // OK
    			tmp.x = 20; // Error			
    			    ~
!!! error TS2339: Property 'x' does not exist on type 'C1'.
    		}
    	}
    }
    
==== foo1.ts (2 errors) ====
    import foo2 = require('./foo2');
    export namespace M1 {
    	export class C1 {
    		m1: foo2.M1.C1;
    		x: number;
    		~
!!! error TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor.
    		constructor(){
    			this.m1 = new foo2.M1.C1();
    			this.m1.y = 10; // OK
    			this.m1.x = 20; // Error
    			        ~
!!! error TS2339: Property 'x' does not exist on type 'C1'.
    		}
    	}
    }
    