Adrián UB Adrián UB

Usar constantes en lugar de enum

Dec 13

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