mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-27 22:39:59 -05:00
fix(42339): skip return if spread type is wrong
This commit is contained in:
@@ -25318,15 +25318,20 @@ namespace ts {
|
||||
hasComputedNumberProperty = false;
|
||||
}
|
||||
const type = getReducedType(checkExpression(memberDecl.expression));
|
||||
if (!isValidSpreadType(type)) {
|
||||
if (isValidSpreadType(type)) {
|
||||
if (allPropertiesTable) {
|
||||
checkSpreadPropOverrides(type, allPropertiesTable, memberDecl);
|
||||
}
|
||||
offset = propertiesArray.length;
|
||||
if (spread === errorType) {
|
||||
continue;
|
||||
}
|
||||
spread = getSpreadType(spread, type, node.symbol, objectFlags, inConstContext);
|
||||
}
|
||||
else {
|
||||
error(memberDecl, Diagnostics.Spread_types_may_only_be_created_from_object_types);
|
||||
return errorType;
|
||||
spread = errorType;
|
||||
}
|
||||
if (allPropertiesTable) {
|
||||
checkSpreadPropOverrides(type, allPropertiesTable, memberDecl);
|
||||
}
|
||||
spread = getSpreadType(spread, type, node.symbol, objectFlags, inConstContext);
|
||||
offset = propertiesArray.length;
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
@@ -25375,6 +25380,10 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
if (spread === errorType) {
|
||||
return errorType;
|
||||
}
|
||||
|
||||
if (spread !== emptyObjectType) {
|
||||
if (propertiesArray.length > 0) {
|
||||
spread = getSpreadType(spread, createObjectLiteralType(), node.symbol, objectFlags, inConstContext);
|
||||
|
||||
Reference in New Issue
Block a user