=== tests/cases/compiler/assignmentCompatability2.ts === module __test1__ { >__test1__ : Symbol(__test1__, Decl(assignmentCompatability2.ts, 0, 0)) export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; >interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability2.ts, 0, 18)) >T : Symbol(T, Decl(assignmentCompatability2.ts, 1, 52)) >U : Symbol(U, Decl(assignmentCompatability2.ts, 1, 54)) >one : Symbol(one, Decl(assignmentCompatability2.ts, 1, 58)) >T : Symbol(T, Decl(assignmentCompatability2.ts, 1, 52)) >two : Symbol(two, Decl(assignmentCompatability2.ts, 1, 66)) >U : Symbol(U, Decl(assignmentCompatability2.ts, 1, 54)) >obj4 : Symbol(obj4, Decl(assignmentCompatability2.ts, 1, 83)) >interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability2.ts, 0, 18)) >one : Symbol(one, Decl(assignmentCompatability2.ts, 1, 139)) export var __val__obj4 = obj4; >__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) >obj4 : Symbol(obj4, Decl(assignmentCompatability2.ts, 1, 83)) } module __test2__ { >__test2__ : Symbol(__test2__, Decl(assignmentCompatability2.ts, 3, 1)) export var aa:{};; >aa : Symbol(aa, Decl(assignmentCompatability2.ts, 5, 14)) export var __val__aa = aa; >__val__aa : Symbol(__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) >aa : Symbol(aa, Decl(assignmentCompatability2.ts, 5, 14)) } __test2__.__val__aa = __test1__.__val__obj4 >__test2__.__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) >__test2__ : Symbol(__test2__, Decl(assignmentCompatability2.ts, 3, 1)) >__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) >__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) >__test1__ : Symbol(__test1__, Decl(assignmentCompatability2.ts, 0, 0)) >__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability2.ts, 2, 14))