Reverse mapping helps you find the name of an enum member when you have its numeric value. It makes working with enums easier and clearer.
Reverse mapping in numeric enums in Typescript
enum EnumName {
Member1 = 0,
Member2 = 1,
Member3 = 2
}
// Reverse mapping example:
let name = EnumName[1]; // 'Member2'Numeric enums automatically create reverse mappings from value to name.
Reverse mapping works only for numeric enums, not for string enums.
enum Colors {
Red = 0,
Green = 1,
Blue = 2
}
console.log(Colors[1]);enum Status {
Ready = 5,
Waiting,
Done
}
console.log(Status[6]);enum Direction {
Up = 1,
Down = 2,
Left = 3,
Right = 4
}
let dirName = Direction[3];
console.log(dirName);This program shows how to get the enum name from a number using reverse mapping.
enum Weekday {
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday
}
// Get name from number
const dayName = Weekday[3];
console.log(`Day 3 is ${dayName}`);Reverse mapping only works with numeric enums, not string enums.
If you assign custom numbers, reverse mapping uses those numbers to find names.
Be careful: if two members have the same value, reverse mapping returns the last one defined.
Numeric enums create a two-way map: name to number and number to name.
Reverse mapping helps convert numbers back to enum names easily.
This feature is useful for debugging and working with numeric enum values.
Practice
Solution
Step 1: Understand numeric enums
Numeric enums assign numbers to names and create a two-way map.Step 2: Understand reverse mapping
Reverse mapping lets you use the number to get the enum name back.Final Answer:
Convert enum numeric values back to their corresponding names -> Option CQuick Check:
Reverse mapping = number to name conversion [OK]
- Thinking reverse mapping converts names to strings
- Confusing string enums with numeric enums
- Assuming enums are immutable at runtime
2 in TypeScript?Solution
Step 1: Recall enum reverse mapping syntax
Numeric enums create a reverse map accessible by bracket notation with the number.Step 2: Identify correct syntax
Using EnumName[2] returns the name for value 2.Final Answer:
EnumName[2] -> Option BQuick Check:
Bracket notation with number = Enum name [OK]
- Using dot notation with a number (invalid syntax)
- Trying to call a non-existent getName method
- Using string keys instead of numeric keys
enum Color { Red, Green, Blue }What is the output of
console.log(Color[1])?Solution
Step 1: Understand enum default values
By default, Red=0, Green=1, Blue=2 in numeric enums.Step 2: Use reverse mapping
Color[1] returns the name for value 1, which is "Green".Final Answer:
"Green" -> Option AQuick Check:
Color[1] = "Green" [OK]
- Assuming enum values start at 1
- Expecting numeric output instead of string
- Confusing enum name with value
enum Status { Active = 1, Inactive, Pending }What is wrong with this code?
console.log(Status[0]);
Solution
Step 1: Check enum values
Status starts at 1, so valid values are 1, 2, 3 for Active, Inactive, Pending.Step 2: Check reverse mapping for 0
Status[0] does not exist, so it returns undefined.Final Answer:
It returns undefined because 0 is not a valid enum value -> Option AQuick Check:
Invalid enum value returns undefined [OK]
- Expecting 0 to map to first enum name
- Thinking it causes syntax or runtime error
- Assuming reverse mapping always returns a string
enum Direction { Up = 3, Down = 5, Left = 7, Right = 9 }What will
console.log(Direction[5]) output?Solution
Step 1: Identify enum values
Direction enum assigns Up=3, Down=5, Left=7, Right=9 explicitly.Step 2: Use reverse mapping
Direction[5] returns the name for value 5, which is "Down".Final Answer:
"Down" -> Option DQuick Check:
Reverse mapping works with custom numeric values [OK]
- Assuming reverse mapping only works with default values
- Expecting numeric output instead of string
- Confusing enum names with values
Ready to prove it?
Pass the test and this pattern moves unknown
