test/com/google/javascript/jscomp/TypeCheckNoTranspileTest.java
// The first "argument" to a template literal tag function has type !ITemplateArray.
The first "argument" to a template literal tag function has type !ITemplateArray.
The first " argument " to a template literal tag function has type !ITemplateArray .
@Test
  public void testTaggedTemplateLiteral_tagParameters1() {
    testTypesWithExtraExterns(
        lines(
            "/**",
            " * @param {!ITemplateArray} template",
            " * @param {...*} var_args Substitution values.",
            " * @return {string}",
            " */",
            "String.raw = function(template, var_args) {};"),
        "String.raw`one ${1} two`");
  }
@ Test public void testTaggedTemplateLiteral_tagParameters1 ( ) { testTypesWithExtraExterns ( lines ( "/**" , " * @param {!ITemplateArray} template" , " * @param {...*} var_args Substitution values." , " * @return {string}" , " */" , "String.raw = function(template, var_args) {};" ) , "String.raw`one ${1} two`" ) ; }
The first "argument" to a template literal tag function has type !ITemplateArray.
The first " argument " to a template literal tag function has type !ITemplateArray .
// ITemplateArray works as the first parameter