diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 565d01bf024..b14c6be383c 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6235,6 +6235,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;