TypeScript 3.7 ahora admite el operador de encadenamiento opcional . Por lo tanto, puede escribir código como:
const value = a?.b?.c;
Es decir, puede usar este operador para acceder a las propiedades de un objeto, donde el objeto en sí puede estar null
o undefined
. Ahora, lo que me gustaría hacer es básicamente lo mismo, pero los nombres de las propiedades son dinámicos:
const value = a?[b]?.c;
Sin embargo, allí recibo un error de sintaxis:
error TS1005: ':' esperado.
¿Qué estoy haciendo mal aquí? ¿Es esto posible?
PD: La propuesta parece implicar que esto no es posible 😕 (pero tal vez entiendo mal los ejemplos de sintaxis).
javascript
typescript
optional-chaining
Golo Roden
fuente
fuente
?.
Respuestas:
Al acceder a una propiedad utilizando la notación de corchetes y el encadenamiento opcional, también debe tener un punto además de los corchetes:
Esta es la sintaxis que fue adoptada por la propuesta TC39 , porque de lo contrario es difícil para el analizador averiguar si esto
?
es parte de una expresión ternaria o parte del encadenamiento opcional.fuente
: