so how is this different from say TypeScript?
6to5 (now Babel) compiles javascript with Ecmascript 6 and 7 features (poorly supported) to JavaScript code that only uses Ecmascript 5 features (which all major browsers since 2011 have supported).
However, TypeScript's goals aren't as different as you might think. It is a strict superset of JavaScript, and although it adds features that are not yet on the standards track, there are proposals to add optional static typing via annotations to JS. Given that Google are also interested in such a capability, given Dart and AtScript, it seems probable that types will eventually become part of the language.