How to useObject.values in Javascript

This approach utilizes Object.values to extract the values of the enum and create a string literal union type.

Example: Consider an enum Direction with values “North,” “South,” “East,” and “West.” The DirectionStringLiteral type, created using Object.values, constrains variables to valid direction options.

Javascript
enum Direction {
    North = "NORTH",
    South = "SOUTH",
    East = "EAST",
    West = "WEST",
}

type DirectionStringLiteral = 
`${(typeof Direction)[keyof typeof Direction]}`;

// Usage
let direction: DirectionStringLiteral = "North"; // Valid
// The line below would result in a type 
// error since "Up" is not a member of the enum.
// let invalidDirection: DirectionStringLiteral = "Up";

console.log(direction); // "North"

Output:

North

How to Create String Literal Union Type From Enum ?

Enum allows us to define a set of named constants and it can be of any type e.g. Numeric, String, etc. and we need to create string literal union type from that enum.

Below are the approaches used to create a string literal union type from an enum:

Table of Content

  • Enum to String Literal Union
  • Extract Enum Values
  • Using Object.values
  • Using Generic Function

Similar Reads

Approach 1: Enum to String Literal Union

In this approach, the keyof typeof operator is used to create a union type of string literals from the enum keys....

Approach 2: Extract Enum Values

This approach uses (keyof typeof) along with & string to create a string literal union type from the enum....

Approach 3: Using Object.values

This approach utilizes Object.values to extract the values of the enum and create a string literal union type....

Approach 4: Using Generic Function

In this approach, we’ll create a generic function enumToLiteralUnion that takes an enum object as input and returns a string literal union type representing its keys. This method enhances reusability and flexibility by allowing the conversion of any enum to a string literal union type....