recursiveGenericUnionType2.ts(19,6): error TS2454: Variable 's2' is used before being assigned.


==== recursiveGenericUnionType2.ts (1 errors) ====
    declare namespace Test1 {
        export type Container<T> = T | {
            [i: string]: Container<T>[];
        };
        export type IStringContainer = Container<string>;
    }
    
    declare namespace Test2 {
        export type Container<T> = T | {
            [i: string]: Container<T>[];
        };
        export type IStringContainer = Container<string>;
    }
    
    var x: Test1.Container<number>;
    
    var s1: Test1.IStringContainer;
    var s2: Test2.IStringContainer;
    s1 = s2;
         ~~
!!! error TS2454: Variable 's2' is used before being assigned.
    s2 = s1;
    