Enums vs Literales en TypeScript: El duelo definitivo
Combina Enums y literales en TypeScript para lo mejor de ambos mundos.
Enums en TypeScript son útiles, pero a veces son demasiado verbosos comparados con los literales.
El truco
// ANTES: Uso de Enum - verboso y poco flexible
enum Color {
Rojo = "rojo",
Verde = "verde",
Azul = "azul",
}
function pintar(color: Color) {
console.log(`Pintando de color ${color}`);
}
// DESPUÉS: Literales tipo union y constantes - más simple y flexible
const Color = {
Rojo: "rojo" as "rojo",
Verde: "verde" as "verde",
Azul: "azul" as "azul",
};
type Color = keyof typeof Color;
function pintar(color: Color) {
console.log(`Pintando de color ${Color[color]}`);
}
Enums tradicionales a menudo ocupan más espacio y pueden ser restrictivos al tratar con strings. En su lugar, define un objeto con constantes y utiliza literales tipo union para lograr la flexibilidad y simplicidad de los literales mientras mantienes la estructura y autocorrección de Enums. Este enfoque te permite aún tener una referencia clara a los valores permitidos, pero sin el exceso de código que a menudo acompaña el uso de Enums.
Combinar la simplicidad de los literales y la estructura de los Enums da lugar a un código más limpio y manejable.