@@ -10510,7 +10510,7 @@ namespace ts {
1051010510 const signature = getSignatureFromDeclaration(node.parent);
1051110511 const parameterIndex = node.parent.parameters.indexOf(node);
1051210512 Debug.assert(parameterIndex >= 0);
10513- return parameterIndex >= getMinArgumentCount(signature);
10513+ return parameterIndex >= getMinArgumentCount(signature, /*strongArityForUntypedJS*/ true );
1051410514 }
1051510515 const iife = getImmediatelyInvokedFunctionExpression(node.parent);
1051610516 if (iife) {
@@ -10601,6 +10601,9 @@ namespace ts {
1060110601 isValueSignatureDeclaration(declaration) &&
1060210602 !hasJSDocParameterTags(declaration) &&
1060310603 !getJSDocType(declaration);
10604+ if (isUntypedSignatureInJSFile) {
10605+ flags |= SignatureFlags.IsUntypedSignatureInJSFile;
10606+ }
1060410607
1060510608 // If this is a JSDoc construct signature, then skip the first parameter in the
1060610609 // parameter list. The first parameter represents the return type of the construct
@@ -10631,7 +10634,6 @@ namespace ts {
1063110634 const isOptionalParameter = isOptionalJSDocParameterTag(param) ||
1063210635 param.initializer || param.questionToken || param.dotDotDotToken ||
1063310636 iife && parameters.length > iife.arguments.length && !type ||
10634- isUntypedSignatureInJSFile ||
1063510637 isJSDocOptionalParameter(param);
1063610638 if (!isOptionalParameter) {
1063710639 minArgumentCount = parameters.length;
@@ -26375,7 +26377,7 @@ namespace ts {
2637526377 return length;
2637626378 }
2637726379
26378- function getMinArgumentCount(signature: Signature) {
26380+ function getMinArgumentCount(signature: Signature, strongArityForUntypedJS?: boolean ) {
2637926381 if (signatureHasRestParameter(signature)) {
2638026382 const restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);
2638126383 if (isTupleType(restType)) {
@@ -26385,6 +26387,9 @@ namespace ts {
2638526387 }
2638626388 }
2638726389 }
26390+ if (!strongArityForUntypedJS && signature.flags & SignatureFlags.IsUntypedSignatureInJSFile) {
26391+ return 0;
26392+ }
2638826393 return signature.minArgumentCount;
2638926394 }
2639026395
0 commit comments