Enums
Use enums to define a set of named constants for cleaner, more readable code.
Enums
Enums let you define a set of named constants, making your code more readable and less error-prone.
Numeric Enums
enum ResourceType {
BOOK, // 0
AUTHOR, // 1
FILM, // 2
DIRECTOR, // 3
}
console.log(ResourceType.BOOK); // 0
console.log(ResourceType.AUTHOR); // 1
Using Enums
interface Resource<T> {
uid: number;
type: ResourceType;
data: T;
}
const doc: Resource<object> = {
uid: 1,
type: ResourceType.BOOK,
data: { title: "TypeScript Guide" },
};
if (doc.type === ResourceType.BOOK) {
console.log("This is a book resource");
}
String Enums
enum Direction {
UP = "UP",
DOWN = "DOWN",
LEFT = "LEFT",
RIGHT = "RIGHT",
}
const move = (direction: Direction) => {
console.log(`Moving ${direction}`);
};
move(Direction.UP); // "Moving UP"
When to Use Enums
- Status codes:
PENDING, ACTIVE, COMPLETED - User roles:
ADMIN, USER, GUEST - Directions, colors, categories — any fixed set of values
Key Takeaways
- Enums define named constants (numeric by default)
- String enums provide readable values
- Great for restricting values to a fixed set
- Makes code more readable than magic numbers/strings