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是可选的,但是其余部分是什么?
答案 0 :(得分:1)
首先要注意的是,您展示的代码是每个冒号后跟随指定字段的类型。
因此,行name: string;
表示字段name
的类型为string
。
但是,在serialize
,parseValue
和parseLiteral
的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类型。