//// [bestCommonTypeWithOptionalProperties.ts] interface X { foo: string } interface Y extends X { bar?: number } interface Z extends X { bar: string } var x: X; var y: Y; var z: Z; // All these arrays should be X[] var b1 = [x, y, z]; var b2 = [x, z, y]; var b3 = [y, x, z]; var b4 = [y, z, x]; var b5 = [z, x, y]; var b6 = [z, y, x]; //// [bestCommonTypeWithOptionalProperties.js] var x; var y; var z; // All these arrays should be X[] var b1 = [x, y, z]; var b2 = [x, z, y]; var b3 = [y, x, z]; var b4 = [y, z, x]; var b5 = [z, x, y]; var b6 = [z, y, x];