Introduction to Enums in TypeScript

Enums are a TypeScipt data type that allow the organization of number-based collections of unique identifiers.

Here’s how to define a simple enum:

enum Transport {
  train,
  bus,
  bike,
  car
}

let myTransport = Transport.bus;
console.log(myTransport); // 1

You can access an enum value by it’s number value or by the string that’s associated with it:

enum Students {
  Ann,
  Bob,
  John,
  Zed
}

console.log(Students['John']); // 2

console.log(Students[3]); // Zed

Enums are zero-based, but you can change that by setting a number value of your choice on the first item. Here for example our enum will have an index that starts with 1:

enum Tools {
  hammer = 1,
  screwdriver,
  saw,
  wrench
}

console.log(Tools.saw); // 3

Or you can skip to new values, and the next values will follow:

enum Tools {
  hammer,
  screwdriver,
  saw = 100,
  wrench
}

console.log(Tools.wrench); // 101

Because of this, you can add to enums in different files and can keep adding to the same enum:

enum Sports {
  Soccer,
  Football,
  Basketball,
}

// ...

// Later or in another file:
enum Sports {
  Swimming = 3,
  Running,
  Hockey
}

Enums become simple JavaScript objects and here’s what the above Sports enum resulting object looks like, by calling JSON.stringify on it:

console.log(JSON.stringify(Sports, null, '\t'));
{
	"0": "Soccer",
	"1": "Football",
	"2": "Basketball",
	"3": "Swimming",
	"4": "Running",
	"5": "Hockey",
	"Soccer": 0,
	"Football": 1,
	"Basketball": 2,
	"Swimming": 3,
	"Running": 4,
	"Hockey": 5
}
✖ Clear

🕵 Search Results

🔎 Searching...