Sé qué operador ternario hay en React.
Cuando estoy desarrollando una aplicación nativa de reacción, encuentro este tipo de sintaxis que mi eslint cubre como un token inesperado.
ESLint: Parsing error: Unexpected token .
Dice así:
const routeName = route.state?.routes[route.state.index]?.name ?? INITIAL_ROUTE_NAME;
¿Que significa eso? Utiliza un operador de fusión nulo al final, sin embargo, no puedo entender qué hace el signo de interrogación antes de un punto.
Sé que es una sintaxis correcta porque es una plantilla de expo y son muy populares en la comunidad de desarrollo nativo de reacción.
¿Alguien puede ayudarme a explicar?
Eso es encadenamiento opcional: MDN
El operador de encadenamiento opcional (
?.) 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.El
?.El operador es como el.operador de encadenamiento, excepto que en lugar de causar un error si una referencia es nula (nulloundefined), la expresión se cortocircuita con un valor de retorno deundefined. Cuando se usa con llamadas a funciones, devuelveundefinedsi la función dada no existe.Esto da como resultado expresiones más cortas y simples al acceder a propiedades encadenadas cuando existe la posibilidad de que falte una referencia. También puede ser útil al explorar el contenido de un objeto cuando no hay una garantía conocida sobre qué propiedades se requieren.