No dejes de divulgar nuestro sitio y códigos con tus amigos, danos de tu ayuda para hacer crecer esta comunidad.
Solución:
Esta es una característica propuesta en TypeScript, bajo el legendario número 16
No se introducirá en TypeScript hasta que la especificación de ECMAScript para esta función sea firme, ya que existe el deseo de que la implementación de TypeScript siga esa especificación, por lo que lo obtendrá temprano, pero no de manera masiva en este caso.
Se denomina cualquiera de los siguientes:
- Operador de propagación nula
- Operador existencial
- Operador de fusión nula
Actualización en 2020: El operador de fusión nula que se menciona a continuación ahora está en el proceso y en ES2020, al igual que el operador de encadenamiento opcional que le permite hacer:
let postal_code = address?.postal_code;
// −−−−−−−−−−−−−−−−−−−−−−^
Con encadenamiento opcional, si address
es null
o undefined
, postal_code
obtendrá undefined
como su valor. Pero si address
Es ninguno null
ni undefined
, postal_code
obtendrá el valor de address.postal_code
.
JavaScript no tiene un null-operador coalescente (tampoco TypeScript, que principalmente se limita a agregar una capa de tipo y adoptar funciones que están razonablemente lejos del camino para convertirlo en JavaScript). Hay una propuesta para un JavaScript null
-operador coalescente, pero solo en la Etapa 1 del proceso.
Utilizando el &&
idioma que ha descrito es un enfoque bastante común:
let postal_code = address && address.postal_code;
Si address
es null
(o cualquier otro valor falso¹), postal_code
será ese mismo valor; de lo contrario, será cualquier valor address.postal_code
estaba.
¹ Los valores falsos son 0
, ""
, NaN
, null
, undefined
y por supuesto false
.
Te mostramos comentarios y puntuaciones
Si aceptas, puedes dejar una división acerca de qué le añadirías a esta sección.