CodeAventura
TypeScript
▸Union types y narrowing▸Enums

Misión

Editor
// Crea un enum Rol con valores Admin, Editor y Viewer
// Usa string values ("ADMIN", "EDITOR", "VIEWER")


// Crea una función obtenerPermisos que reciba un Rol
// y devuelva un string con los permisos correspondientes


// Prueba con cada rol
// console.log(obtenerPermisos(Rol.Admin));

Consola
10 / 25Enums
Anterior

Enums

Constantes con nombre

Un enum es un grupo de constantes relacionadas bajo un mismo nombre:

Por defecto, los valores son numéricos empezando desde 0: Norte = 0, Sur = 1, Este = 2, Oeste = 3.

Enums de string

Los enums numéricos no son muy legibles al debuggear. Los enums de string son más claros:

Cada valor es un string explícito. Cuando lo ves en la consola o en un JSON, sabes exactamente qué es.

Enums en funciones

El parámetro solo acepta valores del enum. No puedes pasar un string suelto:

Enum vs Union de literal types

Puedes lograr algo similar con union types:

¿Cuál usar? Depende:

EnumUnion de literals
Genera código JSSíNo (solo tipo)
Se puede iterarSíNo
Peso en bundleTiene pesoCero peso
Preferencia modernaMenos comúnMás común

La tendencia en TypeScript moderno es preferir union de literal types porque son más ligeras. Los enums son útiles cuando necesitas iterar sobre los valores o cuando vienes de lenguajes como C# o Java.

const enum

Si usas const enum, TypeScript elimina el enum en compilación y reemplaza cada uso con el valor literal:

Más eficiente, pero con limitaciones (no puedes iterar sobre él).

Tu desafío 🚀

  1. Crea un enum Rol con valores Admin = "ADMIN", Editor = "EDITOR" y Viewer = "VIEWER"
  2. Crea una función obtenerPermisos que reciba un Rol y devuelva un string describiendo los permisos
  3. Prueba con cada rol e imprime los permisos

Los enums organizan constantes relacionadas bajo un mismo techo. Úsalos cuando necesites un grupo cerrado de valores con nombre.