TypeScript/tests/cases/conformance/types/intersection/intersectionsAndEmptyObjects.ts
Anders Hejlsberg 0b5284d77e Add tests
2017-04-05 11:22:21 -07:00

26 lines
476 B
TypeScript

// Empty object type literals are removed from intersections types
// that contain other object types
type A = { a: number };
type B = { b: string };
type C = {};
let x01: A & B;
let x02: A & C;
let x03: B & C;
let x04: A & B & C;
let x05: string & C;
let x06: C & string;
let x07: C;
let x08: C & {};
let x09: {} & A & {} & B & {} & C & {};
interface D {}
interface E {}
let x10: A & D;
let x11: C & D;
let x12: A & B & C & D;
let x13: D & E;
let x14: A & B & C & D & E;