Câu hỏi phỏng vấn Typescript
Câu hỏi

What is the difference between enum and const enum s?

Câu trả lời

The difference between enum and const enum in TypeScript revolves around their compilation behavior and the flexibility they offer in terms of runtime code generation and type safety.

Compilation and Runtime Behavior

  • Regular enum: When you define a regular enum, TypeScript compiles it into a JavaScript object that maps both the names and values of the enum members. This allows for reverse mapping, where you can access the name of an enum member from its value and vice versa. For example, given an enum Direction { Up, Down, Left, Right }, TypeScript compiles this into a JavaScript object that includes both the names and values of the enum members, allowing for operations like Direction[Direction.Up] to return "Up"[8].

  • const enum: In contrast, a const enum is completely inlined at compile time, meaning that the enum itself does not exist in the compiled JavaScript code. Instead, all references to const enum members are replaced with their corresponding literal values. This results in smaller JavaScript output and potentially faster runtime performance since there is no object lookup overhead. However, because the enum does not exist at runtime, you lose the ability to perform reverse mapping or iterate over the enum members[6][8].

Use Cases and Limitations

  • Use Cases for Regular enum: Regular enums are useful when you need the flexibility of being able to perform reverse lookups or when you want the enum to exist as a real object at runtime. They are also helpful when the enum values might be dynamically generated or when you're interfacing with Ja...
middle

middle

Gợi ý câu hỏi phỏng vấn

junior

How do we create an enum with string values?

middle

What is Typings in Typescript?

junior

How to make Arrays that can only be read, TypeScript?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào