=== tests/cases/compiler/assignmentCompatability8.ts === module __test1__ { >__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >T : T >U : U >one : T >T : T >two : U >U : U >obj4 : interfaceWithPublicAndOptional >interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } >one : number >1 : number export var __val__obj4 = obj4; >__val__obj4 : interfaceWithPublicAndOptional >obj4 : interfaceWithPublicAndOptional } module __test2__ { >__test2__ : typeof __test2__ export class classWithPublic { constructor(public one: T) {} } var x1 = new classWithPublic(1);; >classWithPublic : classWithPublic >T : T >one : T >T : T >x1 : classWithPublic >new classWithPublic(1) : classWithPublic >classWithPublic : typeof classWithPublic >1 : number export var __val__x1 = x1; >__val__x1 : classWithPublic >x1 : classWithPublic } __test2__.__val__x1 = __test1__.__val__obj4 >__test2__.__val__x1 = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional >__test2__.__val__x1 : __test2__.classWithPublic >__test2__ : typeof __test2__ >__val__x1 : __test2__.classWithPublic >__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional >__test1__ : typeof __test1__ >__val__obj4 : __test1__.interfaceWithPublicAndOptional