0
0
Typescriptprogramming~20 mins

Enum member access in Typescript - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Enum Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of accessing enum members by name and value?
Consider the following TypeScript enum and code snippet. What will be printed to the console?
Typescript
enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}

console.log(Direction.Up);
console.log(Direction[2]);
A1\nDown
BUp\n2
C1\nDown\nLeft
D1\nundefined
Attempts:
2 left
💡 Hint
Remember that enums in TypeScript can be accessed both by member name and by numeric value.
Predict Output
intermediate
2:00remaining
What happens when accessing a non-existent enum member by value?
Given this enum and code, what will be the output?
Typescript
enum Status {
  Active = 1,
  Inactive = 3,
  Pending = 5
}

console.log(Status[2]);
AInactive
BError: Property does not exist
C2
Dundefined
Attempts:
2 left
💡 Hint
Check if the enum has a member with the value 2.
🔧 Debug
advanced
2:00remaining
Why does this enum member access cause a runtime error?
Examine the code below. Why does accessing Color['Blue'] cause a runtime error?
Typescript
enum Color {
  Red = 'RED',
  Green = 'GREEN'
}

console.log(Color['Blue']);
AIt throws a TypeError because string enums do not support reverse mapping.
BAccessing Color['Blue'] throws a ReferenceError because 'Blue' is not declared.
CColor enum does not have a member named 'Blue', so accessing it returns undefined, causing no error.
DIt prints 'Blue' because enums allow dynamic keys.
Attempts:
2 left
💡 Hint
Check how string enums behave when accessed by keys that don't exist.
Predict Output
advanced
2:00remaining
What is the output when accessing numeric enum members with computed values?
Look at this enum and code. What will be the output?
Typescript
enum FileAccess {
  None,
  Read = 1 << 1,
  Write = 1 << 2,
  ReadWrite = Read | Write,
  G = '123'.length
}

console.log(FileAccess.ReadWrite);
console.log(FileAccess[3]);
console.log(FileAccess.G);
A6\nG\n3
B6\nundefined\n3
C6\nReadWrite\n3
D6\nWrite\n3
Attempts:
2 left
💡 Hint
Calculate the bitwise OR and the length of the string.
Predict Output
expert
3:00remaining
What is the output of this mixed enum member access?
Analyze the following enum and code. What will be printed?
Typescript
enum Mixed {
  A = 1,
  B,
  C = 'C',
  D = 5
}

console.log(Mixed.A);
console.log(Mixed.B);
console.log(Mixed.C);
console.log(Mixed[2]);
console.log(Mixed[5]);
console.log(Mixed['C']);
A1\n2\nC\nB\nD\nC
B1\n2\nC\nundefined\nD\nundefined
C1\n2\nC\nundefined\nD\nC
D1\n2\nC\nB\nD\nundefined
Attempts:
2 left
💡 Hint
Remember that string enum members do not create reverse mappings.