I have a couple of enums that I want to use in combination with typechecking because it saves me code for checking valid options. However, when I try to use enums which share some constants I'm running into dead ends:
- You cannot have the same key in different enums: Redefinition of 'FOO' in '$'. Previous definition at ...
- You cannot assign enums to consts (see code snippet below) with type checking on gradual (1): Attempting to initialize enum constant 'FooFOO' of enum 'EnumFoo' with an expression.
const FOO = 0;
const BAR = 1;
const BAZ = 2;
// This is not allowed: Duplicate declaration of symbol 'FOO' in module 'globals'.
enum EnumFoo {
FOO,
BAR,
BAZ,
}
// Working around it:
enum EnumFoo {
FooFOO = FOO,
FooBAR = BAR,
FooBAZ = BAZ,
}
How do people solve this?