Conoces bien los Enums de TypeScript?

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.