Today! We’re going to continue TypeScript learning like you’re a smart 5-year-old who loves to build things and asks “why?” (which is the best thing ever).
& yes “why?” is my way of learning.
I've divided this into 20 Chapters. and will go one by one and each will be of 2 - 3 min. of read.
This is a Continuation. if you have not read the Previous chapter - Chapter 8
🧩 Chapter 9: Enums
(aka: “Giving numbers and strings meaningful values for your app.”)
🎨 Imagine This:
You’re making a game with four difficulties:
- Easy
- Medium
- Hard
- Impossible
You could:
- Use
"easy"
,"medium"
, etc. everywhere (but risk typos like"medum"
) - Use numbers like
1
,2
,3
,4
(but you’ll forget which is which)
Enums help you give names to these values and keep them organized.
🚦 What is an Enum?
An Enum is like a labeled list of values you can use in your code.
🧪 Basic Enum Example:
enum Difficulty { Easy, Medium, Hard, Impossible, } let gameLevel: Difficulty = Difficulty.Medium; console.log(gameLevel); // 1 (because Easy=0, Medium=1, ...)
🤝 Why use Enums?
✅ Readability: Difficulty.Medium
is clearer than "medium"
or 1
.
✅ Safety: Prevents typos ("medum"
❌).
✅ Organized: All values live in one place.
Production Example: Enums for User Roles in an App
Imagine you’re building a team management SaaS.
Users can have roles like:
- Admin
- Editor
- Viewer
Using Enums, you can cleanly manage permissions.
🚦 Step 1: Define the Enum
// userRoles.ts export enum UserRole { Admin = "ADMIN", Editor = "EDITOR", Viewer = "VIEWER", }
🚦 Step 2: Use it in your user model
// models/user.ts import { UserRole } from "./userRoles"; type User = { id: string; name: string; email: string; role: UserRole; }; const user: User = { id: "u123", name: "Karandeep Singh", email: "karandeep@wisdimbits.com", role: UserRole.Editor, };
🚦 Step 3: Permission checks in services
// services/checkPermission.ts import { UserRole } from "./userRoles"; function canEditContent(role: UserRole) { return role === UserRole.Admin || role === UserRole.Editor; } // Usage if (canEditContent(user.role)) { console.log("User can edit content"); } else { console.log("User can only view content"); }
🌱 Summary
Using enums for roles, statuses, modes, environment constants, and permission levels is a best practice in production TypeScript apps to:
✅ Reduce bugs
✅ Improve clarity
✅ Enable safe refactoring later.
Read Previous Chapters
If you enjoyed this and want to master TypeScript and other technologies, follow the series and drop a like!🤝
I’m a passionate software developer sharing the cool things I discover, hoping they help you level up on your coding journey.
How i created my own State Management Library : Rethinking State Management in React — From a Dev, for Developers.
Top comments (0)