From dae4ec63be13b98b67198de04b549e1476045280 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Thu, 8 Sep 2016 11:16:45 -0700 Subject: [PATCH] Number is assignable to enum, even inside union Previously, numbers were not assignable to enums that were inside a union --- src/compiler/checker.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 7199e4a548f..79d485cdc04 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6221,6 +6221,9 @@ namespace ts { if (relation === assignableRelation || relation === comparableRelation) { if (source.flags & TypeFlags.Any) return true; if (source.flags & (TypeFlags.Number | TypeFlags.NumberLiteral) && target.flags & TypeFlags.Enum) return true; + if (source.flags & (TypeFlags.Number | TypeFlags.NumberLiteral) && + target.flags & TypeFlags.Union && + forEach((target as UnionType).types, t => t.flags & TypeFlags.EnumLike)) return true; if (source.flags & TypeFlags.NumberLiteral && target.flags & TypeFlags.EnumLiteral && (source).text === (target).text) return true; } return false;