@@ -25666,8 +25666,8 @@ namespace ts {
2566625666 // For a binding pattern, validate the initializer and exit
2566725667 if (isBindingPattern(node.name)) {
2566825668 const needCheckInitializer = node.initializer && node.parent.parent.kind !== SyntaxKind.ForInStatement;
25669- const needCheckWinendType = node.name.elements.length === 0;
25670- if (needCheckInitializer || needCheckWinendType ) {
25669+ const needCheckWidenedType = node.name.elements.length === 0;
25670+ if (needCheckInitializer || needCheckWidenedType ) {
2567125671 // Don't validate for-in initializer as it is already an error
2567225672 const widenedType = getWidenedTypeForVariableLikeDeclaration(node);
2567325673 if (needCheckInitializer) {
@@ -25676,15 +25676,12 @@ namespace ts {
2567625676 checkNonNullType(initializerType, node);
2567725677 }
2567825678 else {
25679- checkTypeAssignableTo (initializerType, widenedType , node, /*headMessage*/ undefined );
25679+ checkTypeAssignableToAndOptionallyElaborate (initializerType, getWidenedTypeForVariableLikeDeclaration(node) , node, node.initializer );
2568025680 }
2568125681 checkParameterInitializer(node);
25682- } else {
25683- checkTypeAssignableToAndOptionallyElaborate(initializerType, getWidenedTypeForVariableLikeDeclaration(node), node, node.initializer);
2568425682 }
25685-
2568625683 // check the binding pattern with empty elements
25687- if (needCheckWinendType ) {
25684+ if (needCheckWidenedType ) {
2568825685 if (isArrayBindingPattern(node.name)) {
2568925686 checkIteratedTypeOrElementType(widenedType, node, /* allowStringInput */ false, /* allowAsyncIterables */ false);
2569025687 }
0 commit comments