Saltar al contenido principal

Spread

Este operador no provoca cambios en el JSON, sólo tiene el objetivo de reutilizar declaraciones.

const query = `{
user {
id,
name,
account {
id
}
},
professor {
...user,
classes
},
account {
...user.account,
}
}`

Sería lo mismo que tener

const query = `{
user {
id,
name,
account {
id
}
},
professor {
id,
name,
account {
id
},
classes
},
account {
id
}
}`

Se copia según el scope, por lo que en el caso de que exista un padre cercano con la dirección que se especificó y otra al inicio de la query, se copiará la más cercana, para especificar explicitamente que se parta desde la raíz de la consulta, utilice &.

const query = `{
target { name },
pub {
target {
other
},
person {
...&target
}
}
}`

Lo anterior es equivalente a:

const query = `{
target { name },
pub {
target {
other
},
person {
name
}
}
}`