ES6 Flecha gorda y paréntesis `(...) => ({...})` [duplicado]

Esta pregunta ya tiene una respuesta aquí:

ECMAScript 6 función de flecha que devuelve un objeto 3 respuestas

He estado trabajando en algunos ejemplos de Graph QL / React / Relay y me encontré con una sintaxis extraña.

Al definir los campos en Graph QL Objects se utiliza la siguiente sintaxis:

const xType = new GraphQLObjectType({
  name: 'X',
  description: 'A made up type for example.',
  fields: () => ({
    field: {/*etc.*/}
  })
});

e lo que deduzco, esto es solo definir una función anónima y asignarla a xType.fields. Esa función anónima devuelve el objeto que contiene las definiciones de campo.

Supongo que, sin embargo, el mecanismo del esquema Graph QL funciona, esto debe definirse como una función que devuelve un objeto en lugar de simplemente un objeto. Pero la parte que me ha confundido es el paréntesis alrededor de las llaves.

¿Es esto para diferenciar una definición de objeto de una definición de función? ¿Es por razones de claridad para el lector?

La única sintaxis similar que ha encontrado una búsqueda de Google está en la guía de estilo de airbnb, donde parece ser una cuestión de legibilidad / claridad.

Solo busco confirmación o una explicación más allá de mis suposiciones cuando empiezo a jugar un poco más con Graph QL.

Respuestas a la pregunta(2)

Su respuesta a la pregunta