¿Cuando uso enums y cuando uso tipos literales? Veo que en ambos casos es para seleccionar bajo unas opciones definidas.

Pregunta de la clase:
Enums
Rafael Moro

Rafael Moro

Pregunta
student
hace 4 años

¿Cuando uso enums y cuando uso tipos literales? Veo que en ambos casos es para seleccionar bajo unas opciones definidas.

5 respuestas
    Carlos Leonardo Cruces Huaman

    Carlos Leonardo Cruces Huaman

    student
    hace 4 años

    creo que cuando los valores aceptados sean solo ciertos números, por ejemplo:

    enum CardinalDirection { North = 0, East = 1, South = 2, West = 3, };

    El ejemplo lo encontré en un articulo de digitalOcean🐋

    Rafael Moro

    Rafael Moro

    student
    hace 4 años

    Difiero con tu opinión dado que también puedes crear enumeraciones con valores. Ejemplo:

    export enum Sizes { SMALL = 'S', MEDIUM = 'M', LARGE = 'L', EXTRA_LARGE = 'XL' } const playera: object = { tipo: 'polo', Size: Sizes.LARGE }

    Aunque observando mejor, el tipo se puede usar como si crearás un objeto constructor. Gracias por tu comentario.

    Jose Luis Barbosa Cepeda

    Jose Luis Barbosa Cepeda

    student
    hace 4 años

    que diferencia hay entre declare enum y enum?

    Rafael Moro

    Rafael Moro

    student
    hace 4 años

    @wicho-barbosa la diferencia entre enum y enum?

    José Fabián Beltrán Meza

    José Fabián Beltrán Meza

    student
    hace 3 años

    Yo veo que enum tiene una ventaja a la hora de realizar un cambio. Supongamos que tienes:

    type roles = 'admin' | 'seller' | 'customer';

    enum ROLES { ADMIN = 'admin', SELLER = 'seller', CUSTOMER = 'customer' }

    Usando enum: const myUser: User = { username: 'faboBelMe', role: ROLES.ADMIN }

    usando Literal Types: const myUser: User = { username: 'faboBelMe', role: 'admin' }

    Ahora imagina que por alguna razón tienes que cambiar de admin a administrador. Utilizando enum solo realizaría el cambio en ADMIN = 'administrador' y el código seguiría funcionando. Por otro lado si utilizara el tipos literales tendría que realizar el cambio en todas las partes donde el role sea 'admin' de otro modo el programa podría fallar.

Curso de TypeScript: Tipos Avanzados y Funciones

Curso de TypeScript: Tipos Avanzados y Funciones

Domina TypeScript con tipos avanzados, funciones y utility types. Aprende a manejar datos de forma estructurada usando interfaces y DTOs, y aplica técnicas para crear un CRUD efectivo en un proyecto real. Ideal para mejorar tus habilidades.

Curso de TypeScript: Tipos Avanzados y Funciones
Curso de TypeScript: Tipos Avanzados y Funciones

Curso de TypeScript: Tipos Avanzados y Funciones

Domina TypeScript con tipos avanzados, funciones y utility types. Aprende a manejar datos de forma estructurada usando interfaces y DTOs, y aplica técnicas para crear un CRUD efectivo en un proyecto real. Ideal para mejorar tus habilidades.