TypeScript 3.1 добавляет отображаемые кортежи


TypeScript был обновлен, чтобы добавить поддержку отображаемых типов кортежей и массивов.

TypeScript — это надмножество JavaScript, разработанное Microsoft. Он основан на стандарте ECMAScript и включает поддержку дополнительных статических типов, которые призваны упростить использование при создании больших клиентских или серверных приложений. После создания ваш код TypeScript преобразуется в чистый, работоспособный JavaScript. TypeScript включает поддержку редактора для Visual Studio 2015 и 2017, Sublime Text 3 и нового для этого выпуска Visual Studio Code.

Основное улучшение новой версии — поддержка отображаемых типов кортежей и массивов. TypeScript имеет сопоставленный тип объекта, который может генерировать новые типы из существующих, а новая функция означает, что сопоставленные типы объектов правильно работают с кортежами и массивами.

Пространства имен — это вторая область, которую необходимо улучшить. В JavaScript функции — это просто объекты, и к ним можно добавлять свойства, как и к любому объекту. Исторически в TypeScript это управлялось с помощью пространств имен, но развитие JavaScript означает, что он больше не очень полезен и может вызывать проблемы при вводе кода из нетипизированных источников. Эта проблема была решена путем изменения способа работы средства проверки типов TypeScript таким образом, что если есть объявление функции или объявление константы, инициализированное функцией, средство проверки типов будет анализировать содержащую область для отслеживания любых добавленных свойств.

Другие изменения включают улучшенный способ обработки различных версий TypeScript для предотвращения проблем с использованием неправильной библиотеки; и добавление рефакторинга для преобразования функций, возвращающих обещания, построенные с помощью цепочек вызовов .then () и .catch (), в асинхронные функции, использующие await.

В эту версию внесены критические изменения. В частности, был изменен способ работы сужающих функций, так что защита типа typeof foo === «function» может давать разные результаты при пересечении с некоторыми типами объединения. Более подробная информация в вики по TypeScript.


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