Mantén la atención porque en esta reseña hallarás la contestación que buscas.
Solución:
Actualmente, el encadenamiento opcional no es compatible con Node.js versión 13 y anteriores. Será compatible con la versión 14 de Node.js y la mayoría de los navegadores a medida que se mueva a la Etapa 4. Actualmente, pocas plataformas lo admiten. Puede encontrar la lista de plataformas que admiten el encadenamiento opcional en el enlace proporcionado. Puede habilitar el uso opcional --harmony
bandera.
La especificación para la función de encadenamiento opcional se promovió a la Etapa 4 (Finalizada) el 22 de diciembre de 2019. El nodo 12 salió antes de que la especificación fuera definitiva, y también lo hizo el Nodo 13, en realidad.
De acuerdo con node.green, el encadenamiento opcional será compatible a partir del Nodo 14, pero aún requerirá el --harmony
bandera. (Esto parece entrar en conflicto con la descripción de Node del --harmony
bandera: se supone que las funciones de envío de V8 no requieren la bandera, por lo que no estoy seguro de qué hacer con eso) .Sin embargo, ya sea que necesite una bandera o no, no esperaría ver la función hasta el Nodo 14 Lanzamiento alrededor de abril de 2020.
Si quieres jugar con el encadenamiento opcional hoy, tu mejor opción es usar TypeScript (que agregó encadenamiento opcional en la versión 3.7) o un preprocesador como Babel.
Pude usar nodejs v13.7.0 con la bandera –harmony.
nodo –harmony myCode.js
Dinah
indefinido
indefinido
//myCode.js
const adventurer =
name: 'Alice',
cat:
name: 'Dinah'
;
const catName = adventurer.cat?.name;
console.log(catName);
// expected output: Dinah
const dogName = adventurer.dog?.name;
console.log(dogName);
//expected output: undefined
console.log(adventurer.someNonExistentMethod?.())
//expected output: undefined
Recuerda que puedes compartir este tutorial si te valió la pena.