TypeScript 4.8, последнее обновление строго типизированного варианта JavaScript от Microsoft, стал доступен для производства 25 августа. Новая версия содержит улучшения корректности и согласованности, а также исправления для просмотра файлов в Linux и MacOS.
В TypeScript 4.8 улучшены согласованность и корректность strictNullChecks
. Эти изменения влияют на функционирование типов пересечения и объединения и используются в том, как TypeScript сужает типы. В одном примере unknown
по духу близок к союзному типу {} | null | undefined
потому что он принимает null
, undefined
и любой другой тип. TypeScript теперь распознает это и позволяет выполнять назначения из unknown
к {} | null | undefined
. По словам Microsoft, изменения в TypeScript 4.8 позволяют существенно улучшить поток управления и сузить типы. Общие значения также сужаются.
Что касается исправлений слежения за файлами, в TypeScript давно существовала ошибка, из-за которой язык испытывал трудности с некоторыми изменениями файлов в --watch
режим и редактор сценариев. Часто это происходит в системах Unix. Ситуация была вызвана предположениями относительно того, как Node.js обрабатывает события переименования в файловых системах. Файловые системы, используемые в Linux и MacOS, используют индексные дескрипторы, а Node.js привязывает средства отслеживания файлов к индексным дескрипторам, а не к путям к файлам. TypeScript пытается использовать те же объекты-наблюдатели, если обнаруживает, что путь все еще существует на диске, поэтому в конечном итоге будет повторно использовать объект-наблюдатель вместо установки нового наблюдателя в исходное местоположение и будет отслеживать изменения в том, что может быть нерелевантным файлом.
TypeScript 4.8 правильно обрабатывает эти случаи в системах индексных дескрипторов и устанавливает новый наблюдатель.
В другом месте TypeScript 4.8:
- Оптимизации были введены для ускорения сценариев вокруг
--watch
и--incrementa
l вместе со ссылками на проекты, используя--build
. - Улучшен вывод из шаблонов привязки.
- При запуске функции поиска всех ссылок в редакторе TypeScript теперь более разумно агрегирует ссылки. Это сократило время, необходимое для поиска широко используемого идентификатора, примерно на 20%.
- В результате критического изменения неограниченные дженерики больше нельзя назначать
{}
. Еще одно важное изменение: типы нельзя импортировать или экспортировать в файлы JavaScript.
TypeScript 4.8 можно загрузить через NuGet или через NPM, используя следующую команду:
npm install -D typescript
Производственный выпуск следует за выпуском-кандидатом, опубликованным 11 августа, и бета-выпуском, опубликованным 21 июня. TypeScript 4.8 следует за выпуском TypeScript 4.7 в мае 2022 года.