Fixed an issue with missingType narrowing by case undefined in default cases (#58001)

This commit is contained in:
Mateusz Burzyński
2024-05-01 08:57:42 -07:00
committed by GitHub
parent 33b156147b
commit f01cae8893
10 changed files with 837 additions and 1 deletions
+1 -1
View File
@@ -28543,7 +28543,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
if (!hasDefaultClause) {
return caseType;
}
const defaultType = filterType(type, t => !(isUnitLikeType(t) && contains(switchTypes, getRegularTypeOfLiteralType(extractUnitType(t)))));
const defaultType = filterType(type, t => !(isUnitLikeType(t) && contains(switchTypes, t.flags & TypeFlags.Undefined ? undefinedType : getRegularTypeOfLiteralType(extractUnitType(t)))));
return caseType.flags & TypeFlags.Never ? defaultType : getUnionType([caseType, defaultType]);
}