Lesson overview · Free interview practice

Enums

Explore numeric and string enums.

Topics in the full lesson
  • Introduction to Enums
  • Numeric Enums
  • String Enums
  • Heterogeneous Enums
  • Enum Members
  • Enums at Runtime
  • Literal Types
  • Type Aliases with Literal Types
  • Discriminated Unions
  • Best Practices
  • Exercises

Practice Problems

Work through a question before revealing its explanation. These questions and answers are free; Premium adds the full lesson walkthrough, examples and implementation detail.

Completion marks record your own progress, not an automatically checked result. The task type does not determine whether it is optional.

TheoryEasy

Why Avoid Heterogeneous Enums

Question

What is a heterogeneous enum, why is it allowed, and why should you avoid it?

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryEasy

What Is a TypeScript Enum

Question

What is an enum in TypeScript? Show what it compiles to and the values it produces.

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryMedium

Enums vs Union of String Literals: The Modern Decision

Question

In modern TypeScript, what are the trade-offs between an enum and a union of string literals (type Status = 'active' | 'inactive')? What does the community recommend?

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryMedium

Numeric vs String Enums

Question

What's the difference between numeric and string enums in TypeScript? Show the trade-offs in serialization, debugging, and stability.

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

TheoryHard

`const enum` vs `enum`: Inlining and the `isolatedModules` Catch

Question

What does const enum do differently from a regular enum? What is the isolatedModules / single-file transpiler catch?

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

Explore the full Enums material

Premium includes the complete lessons and implementation references. Free practice questions remain available without a subscription.

All course tracks & premium content
From basics to advanced masterclasses
Built for JS/TS developers like you
Real-world tips & common pitfalls
Upgrade to Premium