IMO, it's about on par with old C's
++x. That is, the amount of time you spend worrying would easily outdone any you could save by choosing the right version.
Whether there is any inference is quite debatable. The type-checker would still kick-in on both a) and b) to make sure everything has the correct type. Since the type
.init is dictated by the type of
object, b) isn't all that different from a). I doubt it's even noticeable.
Usually, I'd start annotating type when the compiler seems to struggle or when the expression starts to get complex/overlong. Otherwise, I'd just choose one that's easier to type:
let object = Class()