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

Discussion (0)