DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Fundamentos de TypeScript 🦆| #6: Enum

Los enum son un tipo de dato en TypeScript. Esta característica no es una extensión de JavaScript, sino una peculiaridad propia de TypeScript.

En pocas palabras un enum se encarga de juntar en un solo tipo de dato un conjunto de constantes.

Los enum también aparecen en otros lenguajes de programación como por ejemplo C.

Sintaxis

enum nombreEnum {
  // valores
}
Enter fullscreen mode Exit fullscreen mode

La sintaxis es un poco extraña puesto que no usamos en ningún momento un = o unos : para declarar un enum.

Ahora bien, los valores de un enum pueden ser numéricos o literales, como veremos a continuación:

enum numerico

enum Dias {
  Lunes, //0
  Martes, //1
  Miercoles, //2
  Jueves, //3
  Viernes, //4
  Sabado, //5
  Domingo, //6
}

console.log(Dias.Martes) // 1
Enter fullscreen mode Exit fullscreen mode

Los enum numéricos se declaran separando los valores con comas y a cada uno se le asigna un índice de posición único, muy similar a un arreglo.

Este índice empieza siempre desde 0 y se incrementa automáticamente para el resto de los valores. Es posible cambiar este comportamiento de la siguiente manera:

enum Dias {
  Lunes=10, //10
  Martes, //11
  Miercoles, //12
  Jueves, //13
  Viernes, //14
  Sabado, //15
  Domingo, //16
}

console.log(Dias.Martes) // 11
Enter fullscreen mode Exit fullscreen mode

Basta con modificar el valor de inicio del primer valor que inferir cuales seran los valores posteriores.

enum de cadena de texto

También podemos usar un enum como cadena de texto:

enum Dias {
  Lunes="Lunes",
  Martes="Martes",
  Miercoles="Miercoles",
  Jueves="Jueves",
  Viernes="Viernes",
  Sabado="Sabado",
  Domingo="Domingo",
}

console.log(Dias.Martes) // Martes
Enter fullscreen mode Exit fullscreen mode

enum como tipo de dato

Recuerda que como string, number, boolean, etc., enum es un tipo de dato y puede ser usado como tal:

enum Dias {
  Lunes="Lunes",
  Martes="Martes",
  Miercoles="Miercoles",
  Jueves="Jueves",
  Viernes="Viernes",
  Sabado="Sabado",
  Domingo="Domingo",
}

function imprimirSaludo(mensaje:string, dia:Dias):void {
  console.log(`${mensaje}, hoy es ${dia}. Feliz 2022!`);
}

console.log(imprimirSaludo("Hola mundo",Dias.Jueves))
//Hola mundo, hoy es Jueves. Feliz 2022!
Enter fullscreen mode Exit fullscreen mode

Podemos usar un enum como parámetro de una función sin ningún problema.

Veremos funciones posteriormente.

Conclusiones

  • Los enum son un tipo de dato que te permite crear un conjunto de constantes de una manera más ordenada.
  • No son una característica que se extiende de JavaScript, o mejor dicho, no existen enum's en JavaScript de manera nativa.
  • Puedes usar un enum con valores numéricos auto incrementales o como cadenas de texto.

Referencias

Top comments (0)