- Stricter generics: with union types able to represent a wide range of type scenarios, Typescript applies more strictness to certain generic calls to catch certain coding errors.
- Type aliases: allow defining alternate names for the original types using the type keyword.
- Const enums: For heavy uses of enums, it's helpful to have an even more restricted form that we know is safe to always inline. This helps with performance, code size, and with cases where the enum aliases themselves may not be exported.
- ES6 output mode: the --target command line option allows 'ES6' as a target.
- Let/Const: The ES6 'let' feature is similar to 'var', but it aims to simplify the mental model for the variable’s scope. With 'let', you can scope variables to blocks of code rather than whole functions.
TypeScript 1.5 includes a metadata API for working with decorators, allowing you to add and read metadata on declarations.