— This isn't really about enums, is it?
— What you're talking about can be an issue (or not) out of context. For example:
let numberOfThings = 5
isn't improved by being explicit about the type:
let numberOfThings: Int = 5
In fact, it's arguably worsened, since the type is easy to see. OTOH, with something like this:
let age = complicatedThingIAlreadyCalculated
you have no hope of knowing whether the age is an Int in years, months, days or seconds, or a floating point value of some kind.
In practice, though, so long as you're reading a passage of connected code, and variables are named reasonably and consistently, knowing the type isn't likely to be a problem.
— You should also consider the origins of Swift in reaction to Objective-C. Let's say you have something like this in Swift:
let myObject = MyObject ()
This falls under the case already mentioned, where it's pretty obvious what the type is. Back in Obj-C-land, we have to type:
MyObject* myObject = [MyObject new]; // "new" for purposes of illustration only
It got really old really quickly to have to type the class twice in every declaration, when once would have been enough. This tedious duplication of effort in Obj-C was one of the things Swift was designed to avoid — hence the type inference that avoids the explicit type annotation.
— If you're within Xcode, you can always find out the type of a variable you don't know: you can Option-Click on it to find out.
So, yes, some developers have their anxiety levels raised by the lack of explicit typing, but most(?) developers who are used to the language find it a desirable boon for the fingertips. 🙂