Saltar al contenido

Operador coalescente nulo en React JS/ Typescript

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, undefinedy 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *