Type Alias Solution No magic here, just use the Type Alias to signal the differences. type EnumLike = String Source Pros fast & simple Cons you can't separate behaviour in corresponding "types"