Well typescript is first and foremost important for the types system which es6 / babel do not provide. And since you can have the best from both worlds (es6 + types + babel) - why not :)
Because at runtime, typescript doesn't provide type checking... ie: when interacting with a foreign API... Beyond this, with small, well-organized modules, TypeScript tends to only add boilerplate, and doesn't tend to prevent as many errors as the time to write boilerplate prevents.
I can see why some would like it, I just don't find much value in it.
I agree that type checking at runtime is really important for JS applications. That's why I made this: http://objectmodel.js.org ; it works really well with Babel, and it has non-nullable types by default from the beginning