Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
// Const enum — values are inlined, no runtime object const enum Weekday { Monday = 1, Tuesday, Wednesday, Thursday, Friday, } const day: Weekday = Weekday.Wednesday; // compiled to: const day = 3; // POJO enum pattern — avoids const enum pitfalls const Color = { Red: "RED", Green: "GREEN", Blue: "BLUE", } as const; type Color = typeof Color[keyof typeof Color]; // "RED" | "GREEN" | "BLUE" function paintWall(color: Color): void { console.log(`Painting with ${color}`); } paintWall(Color.Red); // OK // paintWall("PURPLE"); // Error // Iterating over an enum enum Permission { Read = "READ", Write = "WRITE", Admin = "ADMIN", } const allPermissions = Object.values(Permission); // ["READ", "WRITE", "ADMIN"] // Enum bitflags (numeric) const enum FileMode { None = 0, Read = 1 << 0, // 1 Write = 1 << 1, // 2 Execute = 1 << 2, // 4 } const mode = FileMode.Read | FileMode.Write; // 3 const canRead = (mode & FileMode.Read) !== 0; // true const canExec = (mode & FileMode.Execute) !== 0; // false
Result
Open