What are TypeScript enums and why to avoid them?

Enum, short for Enumerated Type, is a language feature of many statically typed languages such as C#, Java and amongst many others. Software engineers use this feature to define sets of named constants that can be used within their code. But here is why to avoid them in TypeScript!