typescript-enums

Uso de Enums en TypeScript

  • 3 min

Un enumeración es una característica de TypeScript que permite definir un conjunto de valores constantes bajo un mismo nombre.

Si quieres aprender más consulta el Curso de Introducción a la Programación

Para definir un enum, se utiliza la palabra clave enum seguida del nombre del enum y un bloque de llaves que contiene los valores del enum.

enum NombreEnum {
    VALOR1,
    VALOR2,
    VALOR3
}
Copied!

Vamos a verlo con un ejemplo,

enum Direccion {
    Norte,
    Sur,
    Este,
    Oeste
}

let direccionActual: Direccion = Direccion.Norte;

console.log(direccionActual); // Output: 0
console.log(Direccion[direccionActual]); // Output: Norte
Copied!

En este ejemplo, Direccion es un enum que define cuatro valores: Norte, Sur, Este y Oeste. Los valores del enum son automáticamente asignados a números enteros, comenzando desde 0.

Enums Numéricos

Por defecto, los enums en TypeScript son numéricos. Cada valor en el enum se asigna a un número, comenzando desde 0 y aumentando en 1 para cada valor subsiguiente.

Personalización de valores numéricos

Se pueden personalizar los valores numéricos asignados a cada miembro del enum.

enum Estado {
    Inactivo = 0,
    Activo = 1,
    Pausado = 2
}

let estadoActual: Estado = Estado.Activo;

console.log(estadoActual); // Output: 1
Copied!

Incremento automático

Si se define un valor numérico explícito para un miembro del enum, los valores subsiguientes se incrementarán automáticamente a partir de ese valor.

enum Semana {
    Lunes = 1,
    Martes,
    Miercoles,
    Jueves,
    Viernes
}

console.log(Semana.Lunes); // Output: 1
console.log(Semana.Martes); // Output: 2
console.log(Semana.Viernes); // Output: 5
Copied!

Enums de string

Además de los enums numéricos, TypeScript también permite definir enums de string, donde cada miembro del enum se asigna a una cadena de texto.

enum Color {
    Rojo = "Rojo",
    Verde = "Verde",
    Azul = "Azul"
}

let colorFavorito: Color = Color.Verde;

console.log(colorFavorito); // Output: Verde
Copied!

En este ejemplo, Color es un enum de cadena que define tres valores: Rojo, Verde y Azul.

Enums heterogéneos

Aunque no es una práctica común (ni probablemente recomendable 😅) TypeScript permite definir enums que mezclan valores numéricos y de cadena.

enum Mixto {
    No = 0,
    Si = "Sí"
}

console.log(Mixto.No); // Output: 0
console.log(Mixto.Si); // Output: Sí
Copied!

Ejemplos prácticos