Enums come in two flavors
Lets start with numeric.
Numeric Enums- Default
By default, enums will initialize the first value to 0 and add 1 to each additional value
let currentDirection = CardinalDirections.North;
/ logs 0
; / throws error as' North' isn't a valid enum currentDirection = ' North';// Error" North" isn't assignable to type' CardinalDirections'. Numeric Enums- Initialized
You can set the value of the first numeric enum and have it auto increment from that
North = 1,
/ logs 1
; / logs 4 console.log(CardinalDirections.West>
; Numeric Enums- Completely Initialized
You can assign unique number values for each enum value. also the values won't incremented automatically
NotFound = 404,
Success = 200,
Accepted = 202,
BadRequest = 400
/ logs 404
; / logs 200 (StatusCodes.Success>
Enums can also contain strings. This is more common than numeric enums, because of their readability and intent.
North = ' North',
East = " East",
South = " South",
West = " West"
/ logs" North"
; / logs" West" (CardinalDirections.West>