Q10: What are Enums, String Enums, and `const enum` declarations?

Difficulty:MediumTopic:Enums

Enums allow defining named sets of constants. TypeScript supports Numeric, String, and const enums.

Standard enums generate runtime JavaScript objects. A const enum is completely removed during compilation—its values are directly inlined into call sites, leaving zero JavaScript runtime object footprint.

const enum Inlining
const enum Direction {
  Up = "UP",
  Down = "DOWN"
}

const move = Direction.Up;
// Compiled JS output:
// var move = "UP"; // No Enum object generated!
đź’ˇ const enum inlines literal values directly at compile time, reducing JavaScript bundle size.
Key Takeaways
  • Use const enum to eliminate runtime JavaScript object overhead.
  • String enums offer better readability during debugging than numeric enums.