From e0d210d0279e69f0a3b60ef25df07b7670bccc73 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Tue, 30 Oct 2018 08:18:18 -0700 Subject: [PATCH] Add tests --- .../conformance/types/spread/objectSpread.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/cases/conformance/types/spread/objectSpread.ts b/tests/cases/conformance/types/spread/objectSpread.ts index c7cf5e49eed..810a8f3d496 100644 --- a/tests/cases/conformance/types/spread/objectSpread.ts +++ b/tests/cases/conformance/types/spread/objectSpread.ts @@ -120,3 +120,24 @@ let a = 12; let shortCutted: { a: number, b: string } = { ...o, a } // non primitive let spreadNonPrimitive = { ...{}}; + +// generic spreads +function genericSpread(t: T, u: U, v: T | U, w: T | { s: string }, obj: { x: number }) { + let x01 = { ...t }; + let x02 = { ...t, ...t }; + let x03 = { ...t, ...u }; + let x04 = { ...u, ...t }; + let x05 = { a: 5, b: 'hi', ...t }; + let x06 = { ...t, a: 5, b: 'hi' }; + let x07 = { a: 5, b: 'hi', ...t, c: true, ...obj }; + let x09 = { a: 5, ...t, b: 'hi', c: true, ...obj }; + let x10 = { a: 5, ...t, b: 'hi', ...u, ...obj }; + let x11 = { ...v }; + let x12 = { ...v, ...obj }; + let x13 = { ...w }; + let x14 = { ...w, ...obj }; + let x15 = { ...t, ...v }; + let x16 = { ...t, ...w }; + let x17 = { ...t, ...w, ...obj }; + let x18 = { ...t, ...v, ...w }; +}