A menudo, encontrar la sintaxis condicional como una matriz seguida de "?" y "." y elemento, ejemplo - edges[0]?.node . ¿Cómo interpretar el siguiente código?
export default function Index({ allPosts: { edges }, preview }) { const heroPost = edges[0]?.node; const morePosts = edges.slice(1); ....// rest of the code }Este es el operador de optional chaining (?.) que le permite leer el valor de una propiedad ubicada en lo profundo de una cadena de objetos conectados sin tener que verificar que cada referencia en la cadena sea válida en cada referencia, protegiéndolo de recibir el error Uncaught TypeError: Cannot read properties of undefined
Este operador es como el . operador de encadenamiento, excepto que en lugar de causar un error si una referencia se considera nula (lo que significa nula o indefinida), la expresión se cortocircuita con un valor de retorno de indefinido (por lo tanto, no arroja una excepción).
const person = { name: 'John', dog: { name: 'cc' } }; const dogName = person.dog?.name; console.log(dogName); console.log(person.cat?.name?.prop); // undefined instead of throwing an error