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
}
Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.
Sign up