TypeScript 3.9 повышает производительность


По словам команды разработчиков, TypeScript был обновлен с улучшениями в последней версии, сосредоточенными на производительности, полировке и стабильности. Работа над компилятором и редактированием была улучшена для повышения скорости.

TypeScript — это надмножество JavaScript, которое добавляет дополнительные статические типы, которые могут быть проверены компилятором TypeScript для выявления распространенных ошибок в ваших программах.

Разработчики говорят, что работали над производительностью TypeScript после того, как наблюдали крайне низкую скорость редактирования / компиляции с такими пакетами, как material-ui и styled-components. Изменения оптимизируют «определенные патологические случаи, включающие большие объединения, пересечения, условные типы и сопоставленные типы».

Каждый из этих запросов на вытягивание сокращает время компиляции примерно на 5-10% на определенных базах кода. В целом, по словам команды, время компиляции проекта material-ui-styles сократилось примерно на 25%. Команды Microsoft также сообщили им, что TypeScript 3.9 сократил время компиляции с 26 до примерно 10 секунд.

Редактор также привлек внимание благодаря улучшенной обработке автоимпорта CommonJS в JavaScript. До сих пор предполагалось, что независимо от вашего файла вам нужен импорт в стиле ECMAScript. TypeScript теперь автоматически определяет типы импорта, которые вы используете, чтобы стиль вашего файла оставался чистым и единообразным.

Что касается конкретных функций, в Inference и Promise.all также есть улучшения. В последних версиях TypeScript были обновлены объявления таких функций, как Promise.all и Promise.race, но это имело побочный эффект, вызывающий проблемы при использовании значений с нулевым или неопределенным значением. Чтобы противостоять этому, команда разработчиков улучшила процесс вывода в TypeScript 3.9. Они говорят, что если вы избегаете обновления своей версии TypeScript из-за проблем, связанных с обещаниями, вам следует попробовать версию 3.9, потому что она намного лучше.

Однако новый оператор ожидаемого типа, целью которого является точное моделирование того, как работает распаковка Promise в JavaScript, не сделал эту сборку, потому что тестирование показало, что она не была готова.


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