En esta página:
La mayoría de Lenguajes de Programación, cuentan con diferentes herramientas y utilidades que nos facilitan el trabajo en un proyecto, en TypeScript existen los Union Type y los Literal Type y las preguntas sobre estos conceptos algunas veces son muy frecuentes, en este Post te daré un alcance sobre que son y otros detalles.
Antes de continuar te invito a leer el artículo: Que es TypeScript y otros Detalles, para que estés familiarizado con este Post y si ya conoces sobre TypeScript, puedes continuar, no hay problema.
Bueno ahora continuemos con el artículo: Union Type y Literal Type en TypeScript.
Union Type
Con TypeScript ahora tenemos un mejor control sobre nuestro código y podemos expresar las cosas de manera más a lo TypeScript, pero en algún momento necesitamos un comportamiento diferente, digamos que tengo una API que envía datos y a veces me envía un objeto y otras veces un mensaje de solicitud no encontrada, en esos casos no puedo tener un tipo de datos correcto, por lo que tenemos que usar cualquier Type.
1 2 3 4 5 6 7 8 9 |
function obtenerRegistros() { // hacemos nuestra llamada a la API y en caso de éxito devolvemos la llamada let data:any = resultado } |
El código anterior parece funcionar, pero si profundizamos más en él, nos estamos alejando del comportamiento esencial de TypeScript, su tipo de soporte, por lo que ahora tenemos 2 problemas, uno es que queremos que nuestro Type sea dinámico, ya que también puede ser un String y un Custom Type y el otro es que queremos que nuestros datos sean del tipo adecuado, para resolver este tipo de problemas, tenemos Union Type en TypeScript.
A continuación veamos como se ve nuestro código, cuando le aplicamos Union Type
1 2 3 4 5 6 7 |
function obtenerRegistros() { // hacemos nuestra llamada a la API y en caso de éxito devolvemos la llamada let data:Postre | string = resultado } |
Con el código anterior, ahora los datos pueden ser de tipo postre o de tipo string y ningún otro tipo es válido aparte de estos 2 Types.
Literal Type
Hasta aquí hemos aprendido un poco más, ahora veamos que son los Literal Type en TypeScript, por ejemplo tengo la siguiente función.
1 2 3 4 5 6 7 8 9 10 |
function hacerJugo(fruta:string){ let jugodefrutas = '' // hacemos jugo return jugodefrutas; } |
La función anterior es simple de entender, toma una fruta, hace el jugo y devuelve el jugo de fruta, ahora llamemos a la función hacerJugo, pero con algunas frutas.
1 2 3 4 5 |
hacerJugo('Naranja') hacerJugo('Platano') hacerJugo('Papa') |
Ahora en el código anterior puedes ver que la naranja y el plátano son frutas válidas, pero la Papa no lo es y no tenemos ninguna restricción, ya que la función hacerJugo acepta Strings. Necesitamos una forma para que el usuario solo ingrese elementos válidos de un grupo de elementos, digamos que la fruta solo puede ser ‘Naranja’, ‘Platano’, ‘Fresa’, asimismo todos los demás valores que se no sean frutas sean inválidos, para esto usamos string literals ya que estamos usando un literal para el tipo de String, bueno ahora veamos como se vería nuestro código.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function hacerJugo( ){ let jugodefrutas = '' // hacemos jugo return jugodefrutas; } hacerJugo('Naranja') hacerJugo('Platano') hacerJugo('Papa') |
En el código anterior, la última línea hacerJugo(‘Papa’) arrojará un error literal.
Conclusión
Espero que hayas entendido el concepto sobre que es Union Type y Literal Type, con esto sabrás cuando podrás utilizarlos y obviamente conforme los vayas usando en tus proyectos, los dominarás mejor.
Nota(s)
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.