Вышел TypeScript 4.2. Обзор релиза

Вышел TypeScript 4.2. Обзор релиза

10.03.2021     

Microsoft выпустила TypeScript 4.2. В ежеквартальном обновлении языка появилась возможность задать сигнатуре конструктора модификатор abstract и пометить при деструктуризации массива переменную как неиспользуемую. Типы кортежей теперь допускают rest-аргументы в любой позиции, а псевдонимы типов больше не раскрываются при отображении подсказки.

Поддержка rest-элементов в первом и промежуточных параметрах кортежей типов

Синтаксис кортежей в TypeScript поддерживает rest-элементы, которые обозначаются с префиксом [...] и могут содержать любое количество однотипных параметров. Раньше rest-параметры ставили на последней позиции, поэтому было невозможно выразить типы кортежей, которые заканчиваются фиксированным набором элементов. Такие типы кортежей полезны для строго типизированных функций со списками переменных параметров, которые заканчиваются фиксированным набором параметров. 

Теперь типы кортежей допускают rest-параметры в любой позиции, а не только в последней. Например:

type T1 = [...string[], number]; // Ноль или более строк за которым следует номер;
type T2 = [number, ...boolean[], string, string]; // Число, за которым следуют ноль или более логических значений, за которыми следуют две строки.

Теперь для rest-элементов остается только одно ограничение – они не могут идти после других rest-элементов и до опциональных элементов

Сохранение псевдонимов типов

Псевдонимы типов теперь сохраняются для более корректного отображения подсказки в IDE и вывода типа в файлах определения .d.ts. При этом также отслеживаются псевдонимы типов для экземпляров других псевдонимов. Это делает представление составных типов читаемым (в том числе в файле определения .d.ts).

 

Сравнение работы псевдонимов типов в предыдущей и текущей версии TypeScript

 

Модификатор abstract в сигнатурах конструкторов

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

TypeScript 4.2 позволяет указывать абстрактный модификатор для сигнатур конструкторов. Добавление абстрактного модификатора в сигнатуру конструктора сигнализирует, что в нее можно передать абстрактный класс. Это не мешает передавать в нее другие классы и функции конструктора, которые являются «конкретными». 

Теперь фабрики миксинов будут поддерживать абстрактные классы

abstract class Shape {
  abstract getArea(): number;
} 
// Ошибка! Невозможно создать экземпляр абстрактного класса. 
new Shape();
interface HasArea { 
getArea(): number; 
} 
// Ошибка! Невозможно присвоить абстрактный тип конструктора неабстрактному типу конструктора. 
let Ctor: new () => HasArea = Shape;
// Работает!
let Ctor: abstract new () => HasArea = Shape; 

Строгие проверки для оператора in

В JavaScript использование не-объектного типа в правой части оператора in – ошибка времени выполнения. Синтаксическая проверка в TypeScript 4.2 гарантирует, что эту ошибку можно будет обнаружить во время разработки.

"foo" in 42
// ошибка! Правая часть выражения in не должна быть примитивом.

Неиспользуемые переменные при деструктуризации массива

Теперь при деструктуризации массива можно явно пометить переменные как неиспользуемые, добавив к ним знак подчеркивания.

let [_first, second] = getValues();

Ранее при включенной опции noUnusedLocals такой синтаксис выдавал ошибку: «Переменная объявлена, но не прочитана». Теперь для переменных массивов, имеющих префикс подчеркивания, ошибка выдаваться не будет.

Аргументы типа

Аргументы типа в JavaScript не разрешены, но в TypeScript 4.2 синтаксический анализатор будет анализировать их совместимым со спецификациями способом. При написании следующего кода в файле JavaScript:

f < T > ( 100 )

TypeScript проанализирует его как:

( f < T ) > ( 100 ) 

Это важно, если вы использовали API TypeScript для анализа конструкций типов в файлах JavaScript.

Планы на будущее

Следующая ежеквартальная версия TypeScript 4.3 запланирована на 25 мая. В плане итераций перечислены предстоящие языковые функции, улучшения производительности редактора, повышение производительности, улучшения инфраструктуры и многое другое.

Кроме того согласно дорожной карте TypeScript на 2021 год, Microsoft планирует:

  • разрешить любой тип ключа в качестве параметра подписи индекса;
  • добавить ключевые слова --noImplicitOverride и override; 
  • добавить подпись статического индекса;
  • использовать unknown как тип для catch переменных предложения;
  • разрешить больше кода перед super() вызовами в подклассах;
  • позволить typeof следовать выражению класса.

Напомним, что в прошлом году Microsoft раскрыла исходники библиотеки TypeScript для редактирования документов в облаке.

Официальная страница анонса релиза TypeScript 4.2



Источник: https://infostart.ru/journal/news/tekhnologii/vyshel-typescript-4-2-obzor-reliza_1400150/
Автор:
Сергей Кравченко Обозреватель


В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

Google добавит в Chrome режим приоритетной загрузки сайта по HTTPS

Новость Безопасность Интернет ИТ-новость

В новой версии Google Chrome появится режим HTTPS-First, который заставит браузер всегда пытаться загружать сайты по защищенному протоколу. В будущих релизах веб-обозревателя эта функция будет включена по умолчанию.

21.07.2021    666    VKuser24342747    0       

JetBrains назвала JavaScript и SQL самыми популярными языками в России

Новость Аналитика ИТ-новость Языки программирования

Компания JetBrains провела ежегодный опрос об экосистеме разработки в 2021 году. В нем приняли участие 31 743 разработчика из 183 стран, в том числе из Российской Федерации и СНГ.

21.07.2021    1016    VKuser24342747    2       

MongoDB с последней версией Atlas стал бессерверным

Новость СУБД ИТ-новость

13 июля MongoDB представила версию 5.0 платформы баз данных NoSQL. Последние обновления поддерживают многие рабочие нагрузки в бессерверном режиме. Новая версия включает новые возможности для приложений и улучшения конфиденциальности и безопасности.

20.07.2021    1342    SKravchenko    1       

«Яндекс» представил уникальный сервис для автоматического перевода видео

Новость Искусственный интеллект ИТ-новость Новости компаний Яндекс

«Яндекс» разработал прототип сервиса на базе нейросети, который в режиме реального времени переводит иностранные ролики на русский язык и озвучивает их. По словам компании, технология не имеет аналогов в мире.

20.07.2021    714    VKuser24342747    1       

Появился способ игнорировать запрет установки Windows 11 на слабые ПК

Новость Windows ИТ-новость

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

19.07.2021    761    VKuser24342747    0       

На свежих процессорах Intel создали микрокомпьютер под Windows 10

Новость Windows Гаджеты ИТ-новость Микроэлектроника

Энтузиасты и стартаперы полюбили Arduino и Raspberry Pi. Но инженеры Commate Computer (Commell) пошли дальше и представили миниатюрный ПК LE-37O на базе новейших чипов Intel Tiger Lake. И на нем можно запустить Windows 10.

16.07.2021    908    user1015646    3       

Вот это поворот: Microsoft выпустила дистрибутив Linux

Новость Linux ИТ-новость Новости компаний

Пока мир замер в ожидании новой Windows 11, Microsoft решила преподнести пользователям большой сюрприз – и представила собственный дистрибутив Linux, CBL-Mariner 1.0.

15.07.2021    1328    user1015646    2       

Стартовала программа возмещения затрат разработчикам на скидки для малого бизнеса

Новость Законодательство Импортозамещение ИТ-новость Облачные технологии

Утверждена программа, в которой предусмотрено субсидирование разработки облачного программного обеспечения для малого и среднего бизнеса, а также скидки на софт, разработанный в рамках данной программы, до 50%.

15.07.2021    614    ЕленаЧерепнева    0       

Исследователи установили: ИИ-программы для собеседований не понимают речь соискателя

Новость Искусственный интеллект ИТ-новость

Эксперты из Массачусетского технологического института (MIT) изучили приложения, анализирующие резюме кандидатов. Ученые пришли к выводу, что такой софт плохо справляется с задачами и дает неверные результаты.

14.07.2021    495    VKuser24342747    1       

Юбилейный индекс TIOBE на июль. Рейтинг отмечает 20-летие

Новость ИТ-новость Рейтинг Языки программирования

Ежемесячный индекс TIOBE показывает, какие языки программирования наиболее популярны, и как их популярность растет с течением времени. В июле TIOBE отмечает 20-летие, публикует новый рейтинг и график популярности языков программирования за 20 лет.

12.07.2021    1029    SKravchenko    0       

Google сделает обязательной двухэтапную аутентификацию для аккаунтов разработчиков

Новость Google ИТ-новость Мобильные приложения

До конца года всем разработчикам мобильных приложений для продуктов Google нужно подключить двухэтапную аутентификацию. Также им придется пройти дополнительную верификацию личности. 

08.07.2021    1009    VKuser24342747    1       

Google установил новый обязательный формат для Android-приложений

Новость Google ИТ-новость Мобильные приложения Новости компаний

Компания Google объявила, что стандарт приложений Android App Bundle (AAB) станет обязательным в Play Store. Он заменит монолитный формат APK.

07.07.2021    1583    user1015646    0       

Токен исходного кода интернета продали с аукциона

Новость ИТ-новость

NFT-токены – уникальные двойники цифровых произведений – становятся все популярнее: их стали предлагать на традиционных аукционах с вековой историей. На этот раз ушел с молотка токен исходного кода интернета – на Sotheby’s его продали за 5,43 млн долларов США.

06.07.2021    2201    user1015646    0       

Российский разработчик научил нейросеть генерировать голос Геральта из The Witcher 3

Новость Видеоигры Искусственный интеллект ИТ-новость

Программист под ником nikich340 создал модификацию A Night to Remember для игры The Witcher 3: Wild Hunt, в которую добавлены новые реплики главного героя, озвученные нейросетью. 

06.07.2021    1511    VKuser24342747    0       

Linux получил крупнейшее обновление с момента выпуска пятой версии

Новость Linux ИТ-новость

Представлен первый стабильный релиз ядра Linux 5.13. По словам Линуса Торвальдса, это один из самых значительных релизов 5.x. ОС получила возможность корректно работать на процессорах Apple M1 и Intel Alder Lake.

05.07.2021    1555    VKuser24342747    4       

Amazon запустил конкурс на поиск уязвимостей AWS BugBust

Новость Безопасность ИТ-новость

Компания Amazon объявила о новом челлендже по поиску уязвимостей в AWS. И это не традиционная баунти-программа: здесь куда больше геймификации и амбициозная цель – совместно избавиться от 1 миллиона багов.

05.07.2021    1581    user1015646    0       

ИИ-помощник для программистов от Microsoft сможет дописывать код

Новость Искусственный интеллект ИТ-новость

Microsoft и GitHub представили совместный проект Copilot («второй пилот») на базе технологий организации OpenAI. Ассистент способен анализировать код и предлагать варианты завершения строк в зависимости от контекста. 

05.07.2021    1787    VKuser24342747    2       

В России начнет работу единая статистическая платформа

Новость Аналитика ИТ-новость

Правительство согласовало положение, которое предусматривает создание к 2022 году сервиса для объединения всех государственных ресурсов статистики. Новая разработка также унифицирует принципы работы с данными. 

02.07.2021    1105    VKuser24342747    0       

Обновление GitLab 14: представлены новые DevOps-инструменты в рамках единой платформы

Новость ИТ-новость

Компания GitLab Inc. выпустила свежий релиз – теперь с интегрированной платформой DevOps-специалистов.

01.07.2021    1653    user1015646    0       

Отечественные компании разработали автоматизированную систему для муниципальных услуг

Новость Автоматизация ИТ-новость

«Базальт СПО», МЦСТ, «Байкал Электроникс», ЭОС и «МойОфис» представили многоместное автоматизированное рабочее место (АРМ). Для тестового запуска системы выбраны госучреждения Орла. 

01.07.2021    1132    VKuser24342747    1       

Новый доклад CompTIA: в Европе вырос спрос на технических специалистов

Новость ИТ-новость

Согласно новому отчету CompTIA, одной из ведущих торговых ассоциаций ИТ-индустрии, спрос работодателей на технических работников в 10 европейских странах увеличился за первый квартал 2021 года. Работодатели разместили 900 тысяч объявлений о вакансиях.

01.07.2021    1526    SKravchenko    0       

Раскрыта неожиданная особенность Windows 11

Новость Windows

При установке Windows 11 на некоторые компьютеры могут возникнуть проблемы. Все дело в инструментах безопасности новой версии операционной системы.

30.06.2021    1303    user1015646    0       

Новый фреймворк Google защитит от встраивания вредоносного кода 

Новость Google

Компания Google представила новый фреймворк SLSA. Он защитит ПО от внедрения вредоносного кода в процессе разработки. 

29.06.2021    701    user1015646    0       

Работу чиновников ускорит отечественная система автоматизации

Новость Автоматизация Минкомсвязь

Минцифры планирует к 2024 году установить в госорганах отечественную систему автоматизации рабочих мест. Вместо предполагаемого эксперимента будет полноценное внедрение. 

29.06.2021    803    VKuser24342747    0       

Google профинансирует добавление поддержки языка Rust в ядро Linux

Новость Linux Google ИТ-новость Новости компаний Языки программирования

Google заявила, что финансирует проект по повышению безопасности Linux, где часть ядра будет написана на языке программирования Rust. Усилия по модернизации могут повысить безопасность в сети и на устройствах.

28.06.2021    2947    SKravchenko    0