Diferencias entre enum y literal types:
Investigando un poco entre algunas diferencias que me gustaría compartirles:
- ** Asignación de valores, por ejemplo los parámetros de una función:**
enum Estaciones {
primavera = "Primavera",
verano = "Verano",
otonio = "Otoño",
invierno = "Invierno",
}
const favEstacion = (est: Estaciones): string => {
return `Mi estación fav es: ${est}`;
};
console.log(favEstacion("verano")); //❌ no se puede mandar un string suelto
console.log(favEstacion(Estaciones.verano)); //✅tenemos que ser mas especificos
Con un enum
tenemos que ser mas específicos al momento de llamar a sus valores, no podemos acceder a ellos como si fuera una simple cadena.
Mientras que con un literal type
esto es mucho mas sencillo:
type Estaciones = "Primavera" | "Verano" | "Otoño" | "Invierno";
const favEstacion = (est: Estaciones): string => {
return `Mi estación fav es: ${est}`;
};
console.log(favEstacion("Primavera")); // ✅ Podemos usar los argumentos como si fuera js nativo
- **Código compilado: **
Conliteral types
el código compilado es mas sencillo:
"use strict";
const favEstacion = (est) => {
return `Mi estación fav es: ${est}`;
};
console.log(favEstacion("Primavera")); // ✅ Podemos usar los argumentos como si fuera js nativo
Mientras que con enums
el código resultante es mas complejo y verboso:
"use strict";
var Estaciones;
(function (Estaciones) {
Estaciones["primavera"] = "Primavera";
Estaciones["verano"] = "Verano";
Estaciones["otonio"] = "Oto\u00F1o";
Estaciones["invierno"] = "Invierno";
})(Estaciones || (Estaciones = {}));
const favEstacion = (est) => {
return `Mi estación fav es: ${est}`;
};
console.log(favEstacion(Estaciones.primavera)); // ✅ Podemos usar los argumentos como si fuera js nativo
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?