==== tests/cases/compiler/assignmentCompatability39.ts (1 errors) ====
    module __test1__ {
        export interface interfaceWithPublicAndOptional<T,U> { one: T; two?: U; };  var obj4: interfaceWithPublicAndOptional<number,string> = { one: 1 };;
        export var __val__obj4 = obj4;
    }
    module __test2__ {
        export         class classWithTwoPublic<T,U> { constructor(public one: T, public two: U) {} }    var x2 = new classWithTwoPublic(1, "a");;
        export var __val__x2 = x2;
    }
    __test2__.__val__x2 = __test1__.__val__obj4
    ~~~~~~~~~~~~~~~~~~~
!!! assignmentCompatability39.ts(9,1): error TS2012: Cannot convert '__test1__.interfaceWithPublicAndOptional<number, string>' to '__test2__.classWithTwoPublic<number, string>':
!!! 	Property 'two' defined as optional in type '__test1__.interfaceWithPublicAndOptional<T, U>', but is required in type '__test2__.classWithTwoPublic<T, U>'.