Enums
Enums, short for enumerations, provide a way for developers to define a collection of named constants. They are useful for documenting the purpose of the code or for establishing a set of distinct scenarios. Enums can be either numeric or string-based. For other data types, consider using unions.
The basics
Section titled âThe basicsâYou can declare enums using the enum
keyword. The members of an enum are separated by commas ,
and can be either identifier
TypeSpecs or string literal
s.
enum Direction { North, East, South, West,}
In the above example, we havenât defined the representation of the constants. Depending on the context, enums might be handled differently.
Assigning values to enums
Section titled âAssigning values to enumsâYou can assign custom values to enum members using the :
operator.
enum Direction { North: "north", East: "east", South: "south", West: "west",}
These values can also be integers.
enum Foo { One: 1, Ten: 10, Hundred: 100, Thousand: 1000,}
Or even floating-point numbers.
enum Hour { Zero: 0, Quarter: 0.25, Half: 0.5, ThreeQuarter: 0.75,}
Combining enums
Section titled âCombining enumsâYou can combine enums using the spread ...
pattern. This copies all the members from the source enum to the target enum, but it doesnât establish any reference between the source and target enums.
enum DirectionExt { ...Direction, `North East`, `North West`, `South East`, `South West`,}
How to reference enum members
Section titled âHow to reference enum membersâYou can reference enum members using the .
operator for identifiers.
alias North = Direction.North;