No, this is a C++ issue rather than something specific to Unreal or TArray. Enum classes are strongly typed and don’t support the usual integral promotion associated with regular enums, and are thus unusable as array indices (which are integral).
We don’t recommend anything in particular, but we support both styles. That said, we will likely migrate engine enums across to enum classes over time for consistency and explicitness.
It’s really up to you. If you feel the explicit cast is troublesome to write every time, use a namespaced enum. Otherwise choose an enum class.