Вышел 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/
Автор:
Сергей Кравченко Обозреватель


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

См. также

Топ языков программирования с самым большим сообществом разработчиков

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

Аналитики британской фирмы SlashData, изучающей сообщества разработчиков, выпустили ежегодный отчёт State of the Developer Nation, в котором описывают аудиторию 14 популярных языков программирования.

07.05.2021    2169    SKravchenko    4       

Кроссплатформенный эмулятор запустил старые Windows-программы в браузере

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

Разработан бесплатный эмулятор для запуска классических приложений Windows на большинстве популярных операционных систем. Программа также доступна в качестве веб-версии с ограниченным числом приложений.

05.05.2021    2947    VKuser24342747    0       

Apple обязала разработчиков использовать новый фреймворк AppTrackingTransparency

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

Компания Apple выпустила серию обновлений для разработчиков приложений. Требования, связанные с переходом на iOS 14.5, предполагают использование фреймворка AppTrackingTransparency для повышения прозрачности сбора пользовательских данных.

05.05.2021    1800    user1015646    0       

Теперь в Docker и в Linux: расширилась поддержка процессоров Apple M1

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

Ядро Linux получило начальную поддержку процессоров M1 производства Apple. Инструмент для развертывания и работы с контейнерами Docker также научился работать с ними.

04.05.2021    2926    user1015646    0       

Ctrl+C, Ctrl+V: эксперты подсчитали, насколько часто разработчики копируют чужой код

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

Популярный форум для разработчиков Stack Overflow в течение двух недель собирал статистику нажатий Ctrl+C или Command+C при копировании кода и других ответов. Но то, что задумывалось как первоапрельская шутка, стало в итоге серьёзным исследованием.

04.05.2021    1864    user1015646    0       

Олдскульный Yayagram: разработчик создал для бабушки гаджет для общения в Telegram

Новость ИТ-новость Мессенджеры

Когда интернет еще не изобрели, абонентов соединяли телефонистки, переключая кабели в нужные гнезда. Разработчик Мануэль Лусио Далло вдохновился этим примером и создал для своей 96-летней бабушки гаджет для общения с родными в Telegram.

30.04.2021    3901    user1015646    1       

Квантовая сеть между Москвой и Петербургом заработает во втором квартале 2021 года

Новость ИТ-новость Телекоммуникации

«Транстелеком», дочерняя компания РЖД, завершила строительство квантовой сети между Москвой и Санкт-Петербургом. После запуска проект можно будет использовать для защищенного обмена данными.

30.04.2021    3015    VKuser24342747    0       

Chrome 90 позволит делиться ссылками на фрагмент текста

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

Google представила новую функцию для Chrome 90, которая позволит создавать ссылку на выделенную часть текста на странице в браузере.

30.04.2021    2119    SKravchenko    2       

Минцифры требует обеспечить возможность удаления предустановленных российских приложений

Новость Законодательство Импортозамещение ИТ-новость Минкомсвязь Мобильные приложения

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

28.04.2021    2817    VKuser24342747    1       

Ubuntu 21.04 обеспечит интегрированную поддержку Microsoft SQL Server и Active Directory

Новость Ubuntu MS SQL ИТ-новость

Компания Canonical представила Ubuntu 21.04, которая получила название «Hirsute Hippo». Релиз содержит интеграцию с Microsoft Active Directory, SDK для разработки приложений Flutter и поддерживает локальную работу Microsoft SQL Server.

28.04.2021    3661    capitan    1       

Доступна тестовая версия дистрибутива Linux, внешне похожего на Windows 10X

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

Команда разработчиков операционной системы Zorin OS представила бета-версию Zorin OS 16. Ирландский дистрибутив Linux объединяет Flatpak, Snap Store и репозиторий Ubuntu. Он имитирует внешний вид Windows 10X, сохраняя при этом функциональность Linux.

27.04.2021    4126    SKravchenko    1       

«Яндекс» представил веб-приложение для работы с текстом и таблицами

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

«Яндекс» запустил сервис «Документы» для создания и редактирования текстовых файлов, таблиц и презентаций в облаке. Услуга входит в состав набора офисных решений «Яндекс 360».

27.04.2021    5039    VKuser24342747    2       

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

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

Исследователи из МТИ разработали систему глубокого машинного обучения для поиска проблем в коде ПО. Она станет основой инструментов автоматического анализа, которые помогут найти и устранить слабые места в IDE для создания программ.

27.04.2021    3825    user1015646    3       

Microsoft разрешит сторонние платежные системы в своем магазине

Новость Windows ИТ-новость Новости компаний Онлайн-торговля

Microsoft готовит перезапуск собственного магазина приложений Microsoft Store. Релиз будет представлен вместе со следующим крупным обновлением Windows и сделает требования для программ в маркетплейсе мягче.

26.04.2021    2137    VKuser24342747    0       

В Windows 10 появилась поддержка Linux-приложений с графическим интерфейсом

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

Microsoft добавит возможность запускать в Windows 10 приложения для Linux с графическим интерфейсом. Опробовать новую функцию можно уже сейчас, используя тестовую сборку ОС.

26.04.2021    4645    VKuser24342747    2       

Linux Shell научился превращать естественный язык в команды

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

Энтузиаст обучил нейросеть OpenAI распознавать вводимые пользователем фразы в Linux Shell и превращать их в bash-команды. Похожее расширение также появилось и для игрового движка Unity3D.

23.04.2021    3294    VKuser24342747    0       

Visual Studio 2022 получит возможность использовать более 4 ГБ памяти

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

Microsoft рассказала о главных обновлениях в новой Visual Studio 2022. Опробовать предварительную версию среду разработки от американского ИТ-гиганта можно будет уже в этом году.

23.04.2021    2463    VKuser24342747    3       

Да здравствует Logica: Google представил новый язык программирования

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

Компания Google разработала новый язык для логического программирования – Logica. В его основе – наработки запущенного ранее проекта Yedalog и языка Datalog для программирования декларативной логики.

21.04.2021    4315    user1015646    8       

Российские компании создадут космический дата-центр на орбите

Новость Дата-центры ИТ-новость Новости компаний

Компании RuVDS и Orbital Express договорились принять участие в совместном проекте по запуску орбитального центра обработки данных. Сервер в открытый космос будет доставлен на отечественной ракете «Союз».

20.04.2021    2924    VKuser24342747    0       

Бизнес отделяет ИТ-структуры ради налоговых льгот

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

С 1 января 2021 года в РФ вступил в силу налоговый маневр, который обеспечивает льготы для ИТ-отрасли. Чтобы воспользоваться ими, крупные корпорации стали переформатировать свои ИТ-подразделения в отдельные компании.

20.04.2021    1989    user1015646    0       

Михаил Мишустин предложил создать стартап-школы при российских вузах

Новость ИТ-новость Стартапы Цифровая экономика

Премьер-министр Михаил Мишустин посетил Московский авиационный институт. Отвечая на вопрос одного из студентов, председатель правительства заявил о необходимости создания школ стартапов.

19.04.2021    2501    VKuser24342747    4       

В сервис для управления проектами Asana добавили русский язык

Новость ИТ-новость Управление проектами

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

19.04.2021    2985    user1015646    0       

У Google Docs появился российский конкурент

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

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

16.04.2021    2236    user1015646    3       

Microsoft планирует вносить свой вклад в экосистему Java

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

Американская компания представила тестовый бесплатный дистрибутив OpenJDK с открытым исходным кодом. В скором времени ИТ-гигант обещает представить релизную версию продукта.

16.04.2021    1341    VKuser24342747    0       

Google Database Migration Service стал доступен для всех

Новость MySQL PostgreSQL Google Интеграция Интернет ИТ-новость

Компания Google открыла всем пользователям бесплатный доступ к сервису Database Migration Service. Это позволит компаниям провести миграцию своих баз из MySQL. PostgreSQL и других платформ в облако Cloud SQL без выделения дополнительных ресурсов.

15.04.2021    5201    user1015646    0