Ich habe einige Graph QL/React/Relay-Beispiele durchgearbeitet und bin in eine seltsame Syntax geraten. ES6 Fettpfeil und Klammern `(...) => ({...})`
Bei der Definition der Felder in Graph QL Objekte die folgende Syntax verwendet:
const xType = new GraphQLObjectType({
name: 'X',
description: 'A made up type for example.',
fields:() => ({
field: {/*etc.*/}
})
});
Von dem, was ich sammeln diese nur eine anonyme Funktion ist die Definition und es xType.fields zuweisen. Diese anonyme Funktion gibt das Objekt zurück, das die Felddefinitionen enthält.
Ich gehe davon aus, dass jedoch der Graph QL-Schemamechanismus funktioniert, der als eine Funktion definiert werden muss, die ein Objekt und nicht einfach ein Objekt zurückgibt. Aber der Teil, der mich verwirrt hat, ist die Klammer um die geschweiften Klammern.
Soll dies eine Objektdefinition von einer Funktionsdefinition unterscheiden? Ist es der Klarheit halber für den Leser?
Die einzige ähnliche Syntax, die eine Google-Suche gefunden hat, ist im airbnb style guide, wo es eine Lesbarkeit/Klarheit Sache scheint.
Nur auf der Suche nach Bestätigung oder eine Erklärung über meine Annahmen hinaus, wie ich anfange, mit Graph QL ein wenig mehr zu spielen.
„Ist das eine Objektdefinition aus einer Funktionsdefinition zu unterscheiden? Ist es der Übersichtlichkeit halber für den Leser?“ Ja, genau das ist es. – Whymarrh
Sie können weitere Informationen zu der duplizierten Frage erhalten, oder in diesem [MDN-Artikel] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Returning_object_literals). –