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
}
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
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
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
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!
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)