Cómo crear y usar enumeraciones en JavaScript (no en TypeScript)

Este artículo le mostrará cómo crear y consumir enumeraciones en JavaScript. Desafortunadamente, javaScript no incluye soporte nativo para Enums, pero usted mismo puede agregar una funcionalidad comparable.

Tenga en cuenta que TypeScript, un lenguaje que se basa en JavaScript, lo hace incluye soporte para Enums de forma nativa. Por lo tanto, solo estamos viendo JavaScript simple aquí, no TypeScript.

¿Qué es un Enum? ?

Una enumeración (Enumeración Tipo de operación) es una estructura de datos que contiene múltiples valores. Cada valor se asigna a un identificador, y ese identificador puede acceder a él.

Enumeraciones contienen constantes predefinidas que no se espera que cambien (serán las mismas cuando se escriba la aplicación y cuando se ejecute para que siempre pueda referirse a los datos en la enumeración por el mismo identificador y obtener el mismo valor ).

Método JavaScript Object.freeze()

Entonces, sin soporte nativo para Enums, ¿cómo usamos Enums?

Dado lo que es un Enum:un conjunto invariable de pares clave/valor, podemos crear un objeto (que puede contener un conjunto de pares clave-valor) y luego congelarlo usando Object.freeze (Haciéndolo inmutable). Por lo tanto, ¡ambos  de los atributos principales de una enumeración están satisfechos!

// Declare a constant called Month, containing our Enum
const Month = {
    JAN: 1,
    FEB: 2,
    MAR: 3
};

// Freeze it! It now can't be changed
Object.freeze(Month);

// Assign a value from the Enum to a variable to test it
let thisMonth = Month.MAR;
console.log(thisMonth); # Outputs 3 - the value of MAR in the Enum

// Trying to add a new member to the Enum will fail - but no error is produced.  The object is just frozen and won't be modified.
Month.APR = 4;
console.log(Month) # Will return the original frozen Month Enum - APR will not be included

¡Simple! Las enumeraciones pueden contener cualquier valor, cualquier variable, cadenas, números, objetos, valores booleanos, etc.

Puede acceder a los valores de la enumeración por el nombre del atributo como lo haría con cualquier otro tipo de Objeto JavaScript.

Por qué usar un Enum ?

Hay algunas razones por las que podría querer hacer esto:

  • Como los valores de un Enum están predefinidos, puede aplicar los valores de ciertos valores. Si el valor se asigna desde un Enum, solo puede ser uno de los valores preaprobados.
    • Especialmente útil cuando trabaja con la entrada del usuario y desea asegurarse de que el usuario haya seleccionado una opción válida
  • Reduzca el tamaño de los datos almacenados en un archivo o base de datos. Por ejemplo, su Enum podría contener datos complejos o extensos, pero debido a que no va a cambiar, puede almacenar el nombre del miembro de Enum en la base de datos en lugar de almacenar el valor completo; luego, cuando su aplicación se cargue a continuación, solo tiene que lea el nombre y luego puede buscarlo en Enum para obtener el valor completo.
  • Es posible que encuentres tus propias razones para usarlo una vez que comiences a crear tus propias aplicaciones. ¡No tengo idea de lo que vas a hacer!