From c47cdb8df88386710215bda03adbc7c4ee1e6e6e Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Thu, 8 Sep 2016 14:41:35 -0700 Subject: [PATCH] Enum literal is assignable to enum, even inside union Previously, only number literals were assignable to enums inside unions. --- src/compiler/checker.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1c42dbb7c26..80e1069f5c7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6230,7 +6230,9 @@ namespace ts { 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; + if (source.flags & (TypeFlags.NumberLiteral | TypeFlags.EnumLiteral) && + target.flags & TypeFlags.EnumLiteral && + (source).text === (target).text) return true; } return false; }