TypeScript provides enums to allow developers to define a set of named constants under a common type. These enum constants can be assigned values,
but it is not mandatory to assign all of them. Those that are not assigned get default values in increasing order starting from zero. As a result,
assigning only a subset of enum members can be misleading. For numeric enums in particular, that would create a gap in the numerical order, which
could lead to unfortunate bugs. In addition, adding more members or moving around existing ones might change their values.
This rule raises an issue whenever an enum assigns a subset of its members, unless the first member only is assigned a numerical literal.
enum Key {
Up = 1,
Down,
Left,
Right
}