TypeScript 4.8 лучше справляется с типами пересечений и объединений.

автор vadim


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 и --incremental вместе со ссылками на проекты, используя--build.
  • Улучшен вывод из шаблонов привязки.
  • При запуске функции поиска всех ссылок в редакторе TypeScript теперь более разумно агрегирует ссылки. Это сократило время, необходимое для поиска широко используемого идентификатора, примерно на 20%.
  • В результате критического изменения неограниченные дженерики больше нельзя назначать {}. Еще одно важное изменение: типы нельзя импортировать или экспортировать в файлы JavaScript.

TypeScript 4.8 можно загрузить через NuGet или через NPM, используя следующую команду:

npm install -D typescript

Производственный выпуск следует за выпуском-кандидатом, опубликованным 11 августа, и бета-выпуском, опубликованным 21 июня. TypeScript 4.8 следует за выпуском TypeScript 4.7 в мае 2022 года.

Related Posts

Оставить комментарий