Авторы языка программирования TypeScript официально выпустили версию 4.6 Beta. Они улучшили функционал языка и добавили несколько серьёзных изменений. Скачать обновление можно через NuGet или npm:
Конструкторы теперь разрешают использовать произвольный код перед методом super (). Раньше такое поведение вызвало бы ошибку, но в обновлении решили эту проблему. Сейчас у разработчиков есть возможность более гибко пользоваться конструкторами.
TypeScript научился правильно делать выводы об индексах типов, которые ссылаются на методы объектов. Например, код ниже показывает, что вызов функции record.f (record.v) — корректный.
TypeScript исправляет проблему сравнения «бесконечно» вложенных типов. Код ниже в версиях языка 4.5 и меньше позволил бы сравнить две переменные x и y, потому что TypeScript проверяет вложенность только до определённого уровня. TypeScript 4.6 научился различать такие случаи и проверять «бесконечную» вложенность.
Релиз 4.6 добавляет новый функционал для сигнатур методов. Ниже представлена функция с неопределённым количеством аргументов, но с одним изменением. Если первый переданный аргумент — строка str, то следующим аргументом должна быть переменная типа string, или если первый аргумент — строка num, то следующим аргументом обязана быть переменная типа number.
Кроме этого, TypeScript 4.6 добавляет больше синтаксических и привязочных ошибок, trace analyzer, проверку JavaScript-файлов на грамматические и привязочные ошибки и многое другое.
Подробный список изменений можно посмотреть на официальном блоге TypeScript.