这个新语法 gql`string` 是什么

What is this new syntax gql`string`

const GET_DOGS = gql`
  {
    dogs {
      id
      breed
    }
  }
`;

我从 here 中找到了这个新语法。

你能解释一下这个语法吗?我在哪里可以找到有关它的详细信息?

它被称为模板文字。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

它不仅允许您像上面的示例一样进行多行格式化,而且还可以更轻松地将表达式与字符串内容混合。

它被称为tagged template。模板文字 (`...`) 可以使用 函数名 作为前缀。评估后,将调用此函数,并将模板文字的静态和动态部分传递给该函数。示例:

function foo(staticParts, dynamicParts) {
  console.log(staticParts, dynamicParts);
}

foo`this is a  test`

标记的模板可用于创建 domain specific languages,如本例所示。

many questions around tagged templates你可以学习更多。