//// [unionTypeReduction.ts] interface I2 { (): number; (q): boolean; } interface I3 { (): number; } var i2: I2, i3: I3; var e1: I2 | I3; var e2 = i2 || i3; // Type of e2 immediately reduced to I3 var r1 = e1(); // Type of e1 reduced to I3 upon accessing property or signature var r2 = e2(); //// [unionTypeReduction.js] var i2, i3; var e1; var e2 = i2 || i3; // Type of e2 immediately reduced to I3 var r1 = e1(); // Type of e1 reduced to I3 upon accessing property or signature var r2 = e2();