From ef40ed1ee6fa5d6546e8c24ecd8748569e89edf8 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 26 May 2020 22:49:10 +0000 Subject: [PATCH] Exempt bare 'boolean's from the check. --- src/compiler/checker.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 949af06d121..c8ae32d35a0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -17833,6 +17833,13 @@ namespace ts { } function typeCouldHaveTopLevelSingletonTypes(type: Type): boolean { + // Okay, yes, 'boolean' is a union of 'true | false', but that's not useful + // in error reporting scenarios. If you need to use this function but that detail matters, + // feel free to add a flag. + if (type.flags & TypeFlags.Boolean) { + return false; + } + if (type.flags & TypeFlags.UnionOrIntersection) { return !!forEach((type as IntersectionType).types, typeCouldHaveTopLevelSingletonTypes); }