Adrián UB Adrián UB

Usar constantes en lugar de enum

Dec 13, 2024

enum es una forma poderosa de crear un conjunto de constantes con nombre, pero tiene algunas desventajas.

Enumeraciones#

Las enumeraciones son una forma de definir un conjunto de constantes con nombre. Por ejemplo, si queremos definir los días de la semana, podemos usar una enumeración.

enum Days {
MONDAY= 'Monday',
TUESDAY= 'Tuesday',
WEDNESDAY= 'Wednesday',
THURSDAY= 'Thursday',
FRIDAY= 'Friday',
SATURDAY= 'Saturday',
SUNDAY= 'Sunday',
}

Constantes#

En primer lugar, usemos la afirmación as const. Esto obliga a que un objeto se trate como de solo lectura e infiere tipos literales para sus propiedades:

const days = {
MONDAY: 'Monday',
TUESDAY: 'Tuesday',
WEDNESDAY: 'Wednesday',
THURSDAY: 'Thursday',
FRIDAY: 'Friday',
SATURDAY: 'Saturday',
SUNDAY: 'Sunday',
} as const;

Ahora podemos derivar los tipos que necesitamos de albumTypes usando keyof y typeof. Por ejemplo, podemos obtener las claves usando keyof:

type Days = keyof typeof days; // 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'

También podemos obtener los valores usando Obj[keyof Obj]:

type Days = typeof days[keyof typeof days]; // 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'

> cd ..
CC BY-NC-SA 4.0 2021-PRESENT © Adrián UB
Hecho con Astro Vitesse