Check for optional type parameters before issuing a "wrong number of

type arguments" error on a function call.

Fixes #25683.
This commit is contained in:
Matt McCutchen
2018-07-17 13:25:46 -04:00
parent d9ed9177fe
commit bd84179d82
6 changed files with 39 additions and 5 deletions

View File

@@ -19083,7 +19083,7 @@ namespace ts {
else if (candidateForTypeArgumentError) {
checkTypeArguments(candidateForTypeArgumentError, (node as CallExpression | TaggedTemplateExpression).typeArguments!, /*reportErrors*/ true, fallbackError);
}
else if (typeArguments && every(signatures, sig => length(sig.typeParameters) !== typeArguments!.length)) {
else if (typeArguments && every(signatures, sig => typeArguments!.length < getMinTypeArgumentCount(sig.typeParameters) || typeArguments!.length > length(sig.typeParameters))) {
diagnostics.add(getTypeArgumentArityError(node, signatures, typeArguments));
}
else if (args) {