// Does TypeScript enum disappear after compilation? // Teaching excerpts; see the explanation and boundaries on the episode page. // An enum is a runtime value. Badge.Guest // 0 Badge[0] // "Guest" // Here is what the compiler adds. var Badge; (function (Badge) { Badge[Badge["Guest"] = 0] = "Guest"; Badge[Badge["Boss"] = 1] = "Boss"; })(Badge || (Badge = {})); // Plain object? Use as const. const Badge = { Guest: 0, Boss: 1 } as const; // JavaScript keeps: const Badge = { Guest: 0, Boss: 1 }; // Choose the runtime you need. type Badge = "guest" | "boss";