@@ -17749,7 +17749,11 @@ namespace ts {
1774917749
1775017750 let typeArguments: NodeArray<TypeNode>;
1775117751
17752- if (!isTaggedTemplate && !isDecorator && !isJsxOpeningOrSelfClosingElement) {
17752+ if (isTaggedTemplate) {
17753+ typeArguments = (node as TaggedTemplateExpression).typeArguments;
17754+ forEach(typeArguments, checkSourceElement);
17755+ }
17756+ else if (!isDecorator && !isJsxOpeningOrSelfClosingElement) {
1775317757 typeArguments = (<CallExpression>node).typeArguments;
1775417758
1775517759 // We already perform checking on the type arguments on the class declaration itself.
@@ -17866,7 +17870,7 @@ namespace ts {
1786617870 checkApplicableSignature(node, args, candidateForArgumentError, assignableRelation, /*excludeArgument*/ undefined, /*reportErrors*/ true);
1786717871 }
1786817872 else if (candidateForTypeArgumentError) {
17869- checkTypeArguments(candidateForTypeArgumentError, (node as CallExpression).typeArguments, /*reportErrors*/ true, fallbackError);
17873+ checkTypeArguments(candidateForTypeArgumentError, (node as CallExpression | TaggedTemplateExpression ).typeArguments, /*reportErrors*/ true, fallbackError);
1787017874 }
1787117875 else if (typeArguments && every(signatures, sig => length(sig.typeParameters) !== typeArguments.length)) {
1787217876 diagnostics.add(getTypeArgumentArityError(node, signatures, typeArguments));
@@ -18660,6 +18664,7 @@ namespace ts {
1866018664 }
1866118665
1866218666 function checkTaggedTemplateExpression(node: TaggedTemplateExpression): Type {
18667+ checkGrammarTypeArguments(node, node.typeArguments);
1866318668 if (languageVersion < ScriptTarget.ES2015) {
1866418669 checkExternalEmitHelpers(node, ExternalEmitHelpers.MakeTemplateObject);
1866518670 }
0 commit comments