Skip to main content

Command Palette

Search for a command to run...

Conoces bien los Enums de TypeScript?

Updated
2 min read
R

Soy Ingeniero de Software con más de 10 años de experiencia. Después de pasar por gigantes como UBER estamos intentando mejorar el mundo de los seguros como desarrollador de Backend.

En el día a día de todo programador es bastante común tener que trabajar con Enums. Durante mis años de desarrollo con PHP, Javascript, Python, todos tienen el concepto de Enums.

¿Que es un Enum?

Los enums como concepto general son estructuras que nos proponen varios valores para una variable.

enum EstadoPedido {
    Activo = "ACTIVO",
    Cancelado = "CANCELADO",
}

Los Enums en TypeScript si se definen de un tipo, en el caso anterior string, los demás elementos deben ser del mismo tipo.

TypeScript permite tener Enums con diferentes tipos de dato pero todos los elementos del enum deben estar definidos. Se recomienda NO mezclar tipos en un E num.

enum MiEnum {
 OpcionA = 10,
 OpcionB = "TEXTO"
}

Los Enums se pueden usar también como un tipo de dato para nuestras variables.

enum EstadoPedido {
  Activo = "ACTIVO",
  Cancelado = "CANCELADO",
}
const miVariable: EstadoPedido = EstadoPedido.Activo

Enums con valores implícitos

Hasta ahora hemos visto Enums donde definimos todos sus elementos. También podemos crear un Enum donde sus valores sean implícitos, que quiero decir con esto pues veamos un ejemplo .

enum OtroEnum {
    OpcionA,
    OpcionB
}
console.log(OtroEnum.OpcionA, OtroEnum.OpcionB)
// El resultado sería:  0 , 1

Cuando no definimos el primer valor de nuestro Enum este toma el valor de 0 y los demás elementos se van incrementando en 1.

También podemos redefinir el valor inicial de incremento.

enum OtroEnum {
    OpcionA,
    OpcionB = 100,
    OpcionC
}
console.log(OtroEnum.OpcionA, OtroEnum.OpcionB, OtroEnum.OpcionC)
// El resultado sería:  0 , 100, 101

Espero les sirva este corto artículo. Los Enums pueden parecer sencillos pero tienen sus cositas escondidas.

More from this blog

Aquí hay Python, DevOps, AI, Javascript

15 posts

Este espacio es donde guardo todo aquello que me ha servido a mi en mi camino como Ingeniero de Software y creo te puede ayudar. No hay un tema específico y escribo como me viene a la mente.