// @target: es2015
// @strictNullChecks: true

declare const undefinedUnion: { a: number } | undefined;
declare const nullUnion: { b: number } | null;

var o1: {} | { a: number };
var o1 = { ...undefinedUnion };

var o2: {} | { b: number };
var o2 = { ...nullUnion };

var o3: {} | { a: number } | { b: number } | { a: number, b: number };
var o3 = { ...undefinedUnion, ...nullUnion };
var o3 = { ...nullUnion, ...undefinedUnion };

var o4: {} | { a: number };
var o4 = { ...undefinedUnion, ...undefinedUnion };

var o5: {} | { b: number };
var o5 = { ...nullUnion, ...nullUnion };

