Поддержка условных типов была добавлена в TypeScript 2.8, язык, который добавляет дополнительные статические типы в JavaScript.
TypeScript был разработан Microsoft и представляет собой надмножество JavaScript, основанное на стандарте ECMAScript и включающее поддержку статических типов. Затем ваш код TypeScript преобразуется в чистый, работоспособный JavaScript. TypeScript включает поддержку редактора для Visual Studio 2015 и 2017, Sublime Text 3 и Visual Studio Code из следующего выпуска.
Улучшение заголовка в новом выпуске — поддержка условных типов. Это новая конструкция в TypeScript, которая позволяет вам выбирать типы на основе других типов. По словам Даниэля Розенвассера из Microsoft:
«Они принимают форму
A расширяет B? CD
где A, B, C и D — все типы. Вы должны прочитать это как «когда тип A присваивается B, тогда этот тип — C; в противном случае это D. »
Условный синтаксис явно имитирует синтаксис JavaScript. Условные типы становятся самостоятельными при использовании с универсальными шаблонами, где они могут избежать необходимости создавать несколько перегрузок для обработки каждого случая, когда тип известен, а также когда он неизвестен. Использование псевдонима типа также позволяет повторно использовать логику.
Второе улучшение — добавление испускания только для объявления. Это дает вам возможность генерировать только файлы декларации, не создавая также файлы JavaScript или файлы исходной карты. Одна из причин, по которой вы можете захотеть это сделать, заключается в том, что вы используете альтернативный компилятор для TypeScript, такой как Babel 7.
Следующее дополнение позволяет вам настроить фабрику JSX для каждого файла, чтобы вы могли использовать сочетание библиотек в одном приложении. Теги JSX обычно переписываются в React.createElement, но это можно изменить, если вы используете библиотеки, которые имеют фабричный API в стиле React, такие как Preact, Stencil, Inferno или Cycle. До сих пор это изменение приходилось вносить глобально, поэтому нельзя было смешивать библиотеки и использовать JSX для обоих.
Другое улучшение в этом выпуске — более детальный контроль над модификаторами сопоставленного типа, поэтому вы можете перемещать модификаторы в сопоставленных типах, а также добавлять модификаторы с помощью оператора +.