Выкидываем Babel

До текущего релиза TypeScript, который совершился 7 декабря 2016 года, некоторые пользовались двойной компиляцией при работе с TypeScript:

Код на TS/TSX транспилировался с таргетом ESNEXT и далее уже полученный код отдавался на транспилирование в Babeljs:

source.ts  tsc --target ESNEXT  babeljs  out.js

Тут есть лишнее звено в виде Babel, который не нужен, так как TypeScript умеет отлично транспилировать код в ES3/ES5. И вот настал тот день, когда бабель можно исключить из этой пищевой цепочки совсем и оставить всего лишь одну компиляцию (прощай боевой программист Ширасу).

Async/Await Functions

Свершилось, теперь есть транспиляция асинковэйтов в ES3/ES5. Это одна из долгожданных фич. Пример таких функций:

const getDataFromServer :Promise = () :Promise =>
fetch('https://jsonplaceholder.typicode.com/comments?postId=1').then(f=>f.json());
async function showData() {
return await getDataFromServer()
}
console.table(showData(), ['id','email']);

Object Rest & Spread

О да, все уже вовсю используют эту фичу и гоняют свой код в Babel, но фича это, на минуточку, из стандарта ES2017. Но теперь и в TS есть возможность использовать этот механизм и компилировать код в ES5.

let copy = { ...original };
let merged = { ...foo, ...bar, ...baz };
let { a, b, c, ...defghijklmnopqrstuvwxyz } = alphabet;

И много чего еще интересного

А вообще много чего еще интересного добавлено в этом релизе. Просто банально нет времени переводить все. Так что советую пройтись по ссылкам и самим все увидеть

https://blogs.msdn.microsoft.com/typescript/2016/12/07/announcing-typescript-2-1/
https://blogs.msdn.microsoft.com/typescript/2016/12/07/announcing-typescript-2-1/