TypeScript

Static type system tools and languages

A study published in September 2017 suggests that the introduction of static type system tools, TypeScript and Flow, could reduce bugs by about 15%.
http://earlbarr.com/publications/typestudy.pdf

Because TypeScript is a superset of ES5, you can use the existing JavaScript (ES5) syntax. In addition, in order to use the new functions of ES6, the new functions of ES6 can be executed in the existing JavaScript engine (current browser or Node.js) without using a separate transpiler such as Babel.