"TypeScript is a superset of JavaScript that compiles down into plain JavaScript (ES3+). The main goal of TypeScript is to enable developers to leverage excellent static typing capabilities."
typescript
Type annotations & type inference.
Generics.
Interfaces, enums, namespaces, modules and classes (the latter two available in ES6).