TypeScript 1.7


TypeScript, расширение для JavaScript, которое изначально было разработано Microsoft, но теперь находится на Github с более широким кругом разработчиков, было недавно обновлено. TypeScript 1.7 обеспечивает поддержку асинхронных функций ES6.

Поддержка асинхронных функций для ECMAScript 6 (ES6) является частью давнего стремления согласовать TypeScript с ES6. В своем сообщении в блоге TypeScript в 2014 году Джонатан Тернер сказал, что:

«Согласование с ES6 позволяет TypeScript стать надмножеством следующего JavaScript, открывая путь для работы с новыми шаблонами кода, такими как деструктуризация, строковые шаблоны, обещания, итераторы и многое другое, в дополнение к функциям, уже поддерживаемым TypeScript, таким как классы и лямбда-функции. »

Дорожная карта TypeScript показывает, что разработчики планируют добавить поддержку async / await для ES3 и ES5 к версии 2.0. Поддержка асинхронности включена по умолчанию и должна расширить возможности использования TypeScript, поскольку это означает, что генераторы ES6, такие как node.js v4 и выше, смогут использовать асинхронные методы, не дожидаясь завершения операций.

Если вы настроили свой tsconfig.json следующим образом:

«compilerOptions»: {«target»: «ES6», «module»: «commonjs»}

Скомпилированный вывод JavaScript можно затем запустить в Node.js:

Помимо поддержки async, в новой версии добавлена поддержка полиморфной типизации this. Эта функция была добавлена для того, чтобы TypeScript предлагал лучшую поддержку того типа кодирования, при котором вы хотите вернуть текущий объект (то есть this) из метода для создания API-интерфейсов свободного стиля. До сих пор трудность заключалась в расширении типов, потому что TypeScript «забыл» о расширенных типах. Как объясняется в вики-странице TypeScript:

«Теперь TypeScript предполагает наличие специального типа, называемого this всякий раз внутри метода экземпляра класса. Тип this записывается так и в основном означает« тип левой части точки в вызове метода »».

Добавление поддержки означало, что TypeScript 1.7 внес изменения в вывод типа из this, что означает, что некоторый код может быть сломан. В классе тип значения this будет выведен из этого типа, и последующие присвоения из значений исходного типа могут завершиться ошибкой. На GitHub есть образец кода с рекомендуемым обходом, а также список других потенциально критических изменений.

Последнее серьезное улучшение — добавление оператора возведения в степень. Комитет ECMAScript недавно переместил это на этап 3, поэтому разработчики TypeScript решили, что он готов для принятия TypeScript, и добавили его поддержку в TypeScript 1.7, что означает, что вы сможете использовать операторы ** и ** = для повышения к власти.

Новая версия доступна на Github.


Добавить комментарий