the core use case is
var { foo } = pony
I agree this is kind of silly in isolation, but more often than not, its used like this: var { foo, bar, baz } = pony
which is honestly not that hard to read, and is much better than var foo = pony.foo;
var bar = pony.bar;
var baz = pony.baz;
which is very useful when you're referencing properties of pony a lot. Since you're going to see destructuring used like var { foo, bar, baz } = pony
typically, I think its a very nice idea to always do your variable assignments like that even when its a little obtuse. I'd rather not see multiple styles for variable assignment. var { foo: f } = pony
is just there as an escape hatch in case foo already exists in the namespace. It is not something you would typically do.