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
}
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Alligator.io is a developer-focused resource that offers tutorials and insights on a wide range of modern front-end technologies, including Angular 2+, Vue.js, React, TypeScript, Ionic, and JavaScript.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.