GraphQL中valueAST的含义是什么?

时间:2017-05-05 11:53:14

标签: graphql

GraphQLScalarTypeConfig的定义是:

type GraphQLScalarTypeConfig<InternalType> = {
  name: string;
  description?: ?string;
  serialize: (value: mixed) => ?InternalType;
  parseValue?: (value: mixed) => ?InternalType;
  parseLiteral?: (valueAST: Value) => ?InternalType;
}

请参阅:http://graphql.org/graphql-js/type/#graphqlscalartype

valueAST的含义和parseLiteral?: (valueAST: Value) => ?InternalType;的完整表达是什么意思?

我知道“parseLiteral?” mean parseLiteral是可选的,但是其余部分是什么?

2 个答案:

答案 0 :(得分:1)

首先要注意的是,您展示的代码是每个冒号后跟随指定字段的类型。

因此,行name: string;表示字段name的类型为string

但是,在serializeparseValueparseLiteral的3个案例中,类型实际上是函数!所以,你在冒号后看到的是该函数的输入和返回类型。

您询问的parseLiteral?: (valueAST: Value) => ?InternalType;行意味着我们有一个名为parseLiteral可选(正如您已经说过的)函数输入参数为AST,返回类型为?InternalType的值。

答案 1 :(得分:0)

AST ==抽象语法树

所有GraphQL查询都在AST数据结构中转换。 AST是Graph QL内部查询处理的基础。

请参阅https://mikewilliamson.wordpress.com/2016/09/15/graphql-and-security/

我假设“(valueAST:Value)=&gt;?InternalType;” mean:valueAST是一个interal GraphQL类型。