From 43a5a271eef08aaeb10cb8808a93699d32e84e48 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Tue, 12 Dec 2017 08:34:36 -0800 Subject: [PATCH] `object` spreads to {} Specifically, when spreading `object` on the right, spread now returns the left of the spread; previously it returned `object`, which loses everything to the left. --- src/compiler/checker.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 95c7d33d5aa..6a1d6b52abb 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -8327,10 +8327,7 @@ namespace ts { if (right.flags & TypeFlags.Union) { return mapType(right, t => getSpreadType(left, t, symbol, propagatedFlags)); } - if (right.flags & TypeFlags.NonPrimitive) { - return nonPrimitiveType; - } - if (right.flags & (TypeFlags.BooleanLike | TypeFlags.NumberLike | TypeFlags.StringLike | TypeFlags.EnumLike)) { + if (right.flags & (TypeFlags.BooleanLike | TypeFlags.NumberLike | TypeFlags.StringLike | TypeFlags.EnumLike | TypeFlags.NonPrimitive)) { return left; }