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

时间:2018-05-04 17:37:38

标签: javascript graphql-js

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

foo`this is a ${42} test`

标记模板可用于创建domain specific languages,例如在此示例中。

您可以从many questions around tagged templates了解更多信息。

答案 1 :(得分:1)

它被称为模板文字。

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

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

答案 2 :(得分:0)

这是GraphQL语法。一个json对象在反引号和数据匹配之间建模,该结构从GraphQL返回。