2017-05-05 2 views
0

In Definition von GraphQLScalarTypeConfig ist:Was bedeutet valueAST in GraphQL?

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

siehe: http://graphql.org/graphql-js/type/#graphqlscalartype

Was ist der Sinn des valueAST und der vollständigen Ausdruck parseLiteral?: (valueAST: Value) => ?InternalType;?

Ich kenne "parseLiteral?" mean parseLiteral ist optional, aber der Rest der Zeile?

Antwort

1

Das erste, was Sie über den angezeigten Code beachten müssen, ist, dass nach jedem Doppelpunkt der Typ des angegebenen Feldes folgt. Die Zeile name: string; bedeutet also, dass das Feld name vom Typ string ist.

jedoch in den drei Fällen von serialize, parseValue und parseLiteral die Typ ist eigentlich eine Funktion! Also, was Sie nach dem Doppelpunkt hier sehen, sind die Eingabe und Rückgabe Arten dieser Funktion.

Die Leitung, die Sie über parseLiteral?: (valueAST: Value) => ?InternalType; bedeutet fordern, dass wir eine optional haben (wie Sie bereits gesagt) -Funktion, die parseLiteral genannt wird, und das dauert als Eingang Argument einen AST und kehrt einen Wert vom Typ ?InternalType.

+0

Vielen Dank! Ich nehme an, Sie sind Facebook-Entwickler. Deine Erklärung ist gut! Besser, wenn Facebook diese Art von Syntax in Ref-Dokumentation dokumentiert oder schreibt ein Dokument über diese Syntaxregeln und Link zu diesem Dokument auf GQL-Dokumentation. So können viele Entwickler googletime speichern !!! – Gerd