Bird
Raised Fist0
Typescriptprogramming~20 mins

Const enums and optimization in Typescript - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Const Enum Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of const enum in compiled JavaScript
What is the output of the following TypeScript code when compiled to JavaScript and run?
Typescript
const enum Colors {
  Red = 1,
  Green,
  Blue
}

console.log(Colors.Green);
A1
Bundefined
C2
D"Green"
Attempts:
2 left
💡 Hint
Remember that const enums are inlined during compilation.
🧠 Conceptual
intermediate
2:00remaining
Why use const enums for optimization?
Which of the following best explains why const enums improve runtime performance in TypeScript?
AThey generate extra code to check enum values at runtime.
BThey inline enum values, removing object lookups at runtime.
CThey create a separate enum object to reduce memory usage.
DThey delay enum value evaluation until runtime.
Attempts:
2 left
💡 Hint
Think about what happens to enum references in the compiled code.
❓ Predict Output
advanced
2:00remaining
Effect of const enum on emitted JavaScript code
Given this TypeScript code, what will the compiled JavaScript output be?
Typescript
const enum Status {
  Success = 0,
  Failure = 1
}

function check(status: Status) {
  if (status === Status.Success) {
    return "OK";
  }
  return "Error";
}

console.log(check(Status.Failure));
A"Error"
BReferenceError: Status is not defined
C"Failure"
D"OK"
Attempts:
2 left
💡 Hint
Const enums are replaced by their values, so no enum object exists at runtime.
🔧 Debug
advanced
2:00remaining
Why does this code cause a runtime error?
Consider this TypeScript code snippet: const enum Directions { Up, Down, Left, Right } console.log(Directions); Why does this cause a runtime error when compiled and run?
ABecause the enum has duplicate values causing a conflict.
BBecause the enum values are strings, which cannot be logged directly.
CBecause the enum is not exported and cannot be accessed outside its module.
DBecause const enums are removed during compilation and no Directions object exists at runtime.
Attempts:
2 left
💡 Hint
Think about what happens to const enums in the compiled JavaScript.
🚀 Application
expert
3:00remaining
Optimizing large enum usage with const enums
You have a large enum used only for numeric constants in performance-critical code. Which approach best optimizes runtime speed and reduces output size?
AUse a const enum so all references are inlined as numeric literals.
BUse a regular enum and access values via the enum object at runtime.
CUse string enums to improve readability and debugging.
DUse a namespace with constant variables instead of enums.
Attempts:
2 left
💡 Hint
Inlining values removes object lookups and reduces code size.

Practice

(1/5)
1. What is the main benefit of using const enum in TypeScript?
easy
A. It allows enums to be modified at runtime.
B. It enables enums to be serialized to JSON automatically.
C. It replaces enum references with actual values at compile time, reducing runtime code.
D. It creates a separate JavaScript object for the enum at runtime.

Solution

  1. Step 1: Understand what const enum does

    const enum replaces enum references with their actual values during compilation, so no enum object exists at runtime.
  2. Step 2: Compare runtime behavior

    Unlike regular enums, const enum does not generate extra JavaScript code for the enum object, reducing code size and improving speed.
  3. Final Answer:

    It replaces enum references with actual values at compile time, reducing runtime code. -> Option C
  4. Quick Check:

    Const enums optimize code by replacing references with values [OK]
Hint: Const enums inline values, no runtime object created [OK]
Common Mistakes:
  • Thinking const enums create runtime objects
  • Believing const enums allow runtime modification
  • Confusing const enums with regular enums
2. Which of the following is the correct syntax to declare a const enum in TypeScript?
easy
A. enum Colors { Red, Green, Blue }
B. const enum Colors { Red, Green, Blue }
C. constant enum Colors { Red, Green, Blue }
D. enum const Colors { Red, Green, Blue }

Solution

  1. Step 1: Recall the correct keyword order

    The correct syntax uses the keyword const before enum to declare a const enum.
  2. Step 2: Check each option

    const enum Colors { Red, Green, Blue } matches the correct syntax: const enum Colors { Red, Green, Blue }. Options C and D use invalid keywords or order.
  3. Final Answer:

    const enum Colors { Red, Green, Blue } -> Option B
  4. Quick Check:

    Const enum syntax = const enum [OK]
Hint: Remember: const comes before enum in declaration [OK]
Common Mistakes:
  • Writing 'constant' instead of 'const'
  • Placing 'const' after 'enum'
  • Omitting 'const' keyword
3. Given the following code, what will be the output when compiled and run?
const enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

const move = Direction.Left;
console.log(move);
medium
A. 3
B. undefined
C. Left
D. 2

Solution

  1. Step 1: Understand enum value assignment

    The enum starts with Up = 1, so Down = 2, Left = 3, and Right = 4.
  2. Step 2: Identify the value of Direction.Left

    It is 3, so move is assigned 3, and console.log(move) prints 3.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Enum Left value = 3 [OK]
Hint: Count enum values starting from assigned number [OK]
Common Mistakes:
  • Assuming Left is 2 instead of 3
  • Expecting string output 'Left'
  • Confusing enum with object property
4. What is the error in the following TypeScript code using const enums?
const enum Status {
  Active = 1,
  Inactive = 0
}

console.log(Status[1]);
medium
A. Compile-time error: Cannot use reverse mapping with const enums
B. Runtime error: Status is undefined
C. No error, outputs 'Active'
D. Outputs 1

Solution

  1. Step 1: Understand const enum limitations

    Const enums do not generate an object at runtime, so reverse mapping (accessing by index) is not supported.
  2. Step 2: Identify the error cause

    Using Status[1] tries to access reverse mapping, causing a compile-time error.
  3. Final Answer:

    Compile-time error: Cannot use reverse mapping with const enums -> Option A
  4. Quick Check:

    Reverse mapping disallowed in const enums [OK]
Hint: Const enums have no reverse mapping, avoid index access [OK]
Common Mistakes:
  • Expecting reverse mapping to work with const enums
  • Thinking it outputs string 'Active'
  • Ignoring compile-time errors
5. You want to optimize a TypeScript program by replacing a regular enum with a const enum. Which of the following changes will NOT work correctly after this replacement?
hard
A. Using enum values directly in expressions and comparisons.
B. Using enum values as keys in a switch statement.
C. Assigning enum values to variables for later use.
D. Accessing enum values by their numeric index (reverse mapping).

Solution

  1. Step 1: Recall const enum behavior

    Const enums inline values and do not create runtime objects, so reverse mapping (index to name) is not available.
  2. Step 2: Analyze each option

    Options A, B, and D work fine as they use the inlined values directly. Accessing enum values by their numeric index (reverse mapping). requires reverse mapping, which fails with const enums.
  3. Final Answer:

    Accessing enum values by their numeric index (reverse mapping). -> Option D
  4. Quick Check:

    Reverse mapping breaks with const enums [OK]
Hint: Const enums disallow reverse mapping, avoid numeric index access [OK]
Common Mistakes:
  • Assuming all enum features work with const enums
  • Using reverse mapping without error
  • Confusing const enum with regular enum behavior
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard