Saltar al contenido

Usar constantes en lugar de enum

Updated View as Markdown

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'

Escribe para buscar…

↑↓ navegar↵ seleccionarEsc cerrar