Enums help us give names to a set of related values. This makes code easier to read and less error-prone.
When you have a fixed set of options, like days of the week.
When you want to avoid using many magic numbers or strings in your code.
When you want to group related constants under one name.
When you want to make your code easier to understand for others.
When you want to prevent invalid values by limiting choices.
Syntax
Typescript
enum Name {
Option1,
Option2,
Option3
}
Each option inside an enum gets a numeric value by default, starting at 0.
You can assign specific values to options if you want.
Examples
This enum represents four directions with default numeric values 0, 1, 2, 3.
Typescript
enum Direction {
Up,
Down,
Left,
Right
}
Here, we assign specific numbers to each status for clarity.
Typescript
enum Status {
Active = 1,
Inactive = 0,
Pending = 2
}
This enum uses strings instead of numbers for better readability.
Typescript
enum Color {
Red = "RED",
Green = "GREEN",
Blue = "BLUE"
}
Sample Program
This program defines weekdays as an enum. It shows how to use enum values and a function that checks if a day is weekend (which returns false here).
Typescript
enum Weekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
function isWeekend(day: Weekday): boolean {
return day === Weekday.Saturday || day === Weekday.Sunday;
}
console.log(Weekday.Monday); // prints 0console.log(isWeekend(Weekday.Monday)); // prints false
OutputSuccess
Important Notes
Enums make your code safer by limiting possible values.
Using enums helps avoid typos in strings or numbers.
TypeScript enums can be numeric or string-based depending on your needs.
Summary
Enums group related values with friendly names.
They improve code readability and reduce errors.
Use enums when you have a fixed set of options.
Practice
(1/5)
1. Why are enums useful in TypeScript? enum Color { Red, Green, Blue }
easy
A. They group related values with readable names.
B. They allow dynamic addition of new values at runtime.
C. They replace all functions in TypeScript.
D. They automatically convert numbers to strings.
Solution
Step 1: Understand what enums represent
Enums group a fixed set of related values under friendly names, improving code clarity.
Step 2: Analyze the options
Only They group related values with readable names. correctly describes enums' purpose. Options A, B, and C are incorrect features.
Final Answer:
They group related values with readable names. -> Option A
Quick Check:
Enums improve readability = D [OK]
Hint: Enums group fixed options with names, not dynamic values [OK]
Common Mistakes:
Thinking enums allow adding values at runtime
Confusing enums with functions
Believing enums convert numbers to strings automatically
2. Which of the following is the correct syntax to declare an enum in TypeScript?
easy
A. enum Direction { Up, Down, Left, Right }
B. enum Direction = (Up, Down, Left, Right);
C. enum Direction: [Up, Down, Left, Right];
D. enum Direction { 'Up', 'Down', 'Left', 'Right' }
Solution
Step 1: Recall enum declaration syntax
In TypeScript, enums are declared using the keyword enum followed by curly braces with comma-separated names.
Step 2: Check each option
enum Direction { Up, Down, Left, Right } matches the correct syntax. Options A and C use invalid assignment or colon syntax. enum Direction { 'Up', 'Down', 'Left', 'Right' } incorrectly uses quotes around names.
Final Answer:
enum Direction { Up, Down, Left, Right } -> Option A
Quick Check:
Correct enum syntax uses braces and names without quotes = B [OK]
Hint: Enums use braces and names without quotes [OK]
Common Mistakes:
Using equals sign or colon instead of braces
Putting quotes around enum member names
Ending enum declaration with semicolon incorrectly
3. What will be the output of this TypeScript code?
enum Status { Active = 1, Inactive, Pending }
console.log(Status.Inactive);
medium
A. Inactive
B. 1
C. 0
D. 2
Solution
Step 1: Understand enum numeric values
The enum starts with Active = 1, so Inactive gets the next number, 2, and Pending gets 3.
Step 2: Check the logged value
Logging Status.Inactive prints its numeric value, which is 2.
Final Answer:
2 -> Option D
Quick Check:
Enum auto-increments numbers = A [OK]
Hint: Enum numbers auto-increment from first assigned value [OK]
Common Mistakes:
Assuming enum starts at 0 when first value is assigned 1
Expecting string output instead of number
Confusing enum member names with their values
4. Identify the error in this enum declaration:
enum Size {
Small = 'S',
Medium = 'M',
Large = 3
}
medium
A. Enum values must be unique numbers only.
B. Mixing string and number values in one enum is not allowed.
C. Enum member names must be lowercase.
D. Missing semicolon after enum declaration.
Solution
Step 1: Check enum value types
TypeScript enums can be numeric or string, but mixing both types in one enum causes errors.
Step 2: Analyze the given enum
Here, 'Small' and 'Medium' have string values, but 'Large' has a number, which is invalid.
Final Answer:
Mixing string and number values in one enum is not allowed. -> Option B
Quick Check:
Enum values must be consistent type = C [OK]
Hint: Enum values must be all strings or all numbers [OK]
Common Mistakes:
Thinking enum member names must be lowercase
Believing enum values must be unique numbers only
Assuming missing semicolon causes error
5. You want to represent fixed user roles in your app: 'Admin', 'Editor', and 'Viewer'. Why is using an enum better than plain strings?
enum UserRole { Admin, Editor, Viewer }
hard
A. Enums automatically encrypt role names for security.
B. Enums allow adding new roles dynamically at runtime.
C. Enums prevent typos and make code easier to maintain.
D. Enums convert roles to numbers for faster database storage.
Solution
Step 1: Understand the benefit of enums for fixed sets
Enums provide named constants that prevent typos and improve readability and maintainability.
Step 2: Evaluate the options
Enums prevent typos and make code easier to maintain. correctly states the main advantage. Options B, C, and D describe incorrect or unrelated features.
Final Answer:
Enums prevent typos and make code easier to maintain. -> Option C
Quick Check:
Enums improve safety and clarity = A [OK]
Hint: Enums reduce errors by using fixed named values [OK]