Выпущен последний выпуск TypeScript. В версии 3.0 улучшена поддержка ссылок на проекты, появился новый «неизвестный» тип и возможность использовать кортежи в списках параметров.
TypeScript был разработан Microsoft и представляет собой надмножество JavaScript, основанное на стандарте ECMAScript и включающее поддержку статических типов. Затем ваш код TypeScript преобразуется в чистый, работоспособный JavaScript. TypeScript включает поддержку редактора для Visual Studio 2015 и 2017, Sublime Text 3 и Visual Studio Code из следующего выпуска.
Справочная поддержка проекта — это главное изменение в новом выпуске. Это означает, что проект может зависеть от других проектов. В частности, это означает, что файлы tsconfig.json могут ссылаться на другие файлы tsconfig.json. Вы можете указать зависимости, чтобы разделить код на более мелкие проекты, поскольку это дает TypeScript способ понять порядок сборки и структуру вывода. Это ускоряет сборку, а разработчики могут редактировать проекты и перемещаться между ними. Менеджер программы TypeScript Даниэль Розенвассер сказал:
«означает такие вещи, как более быстрые сборки, которые работают постепенно, и поддержка прозрачной навигации, редактирования и рефакторинга между проектами».
Следующее улучшение — поддержка извлечения и распространения списков параметров с кортежами. TypeScript 3.0 позволяет параметрам rest быть универсальными и позволяет выводить эти универсальные типы как типы кортежей. Это означает, что функции с переменной длиной параметра можно обрабатывать без необходимости записывать перегрузки. Вместо этого вы можете сказать, что параметр rest должен быть параметром типа, который расширяет массив, а затем повторно использовать его для аргументов, передаваемых вызовом. Типы кортежей также были расширены для поддержки этого использования.
Также был добавлен новый неизвестный тип. Он похож на тип «любой», уже поддерживаемый TypeScript, но предназначен для API-интерфейсов, которым нужен способ сигнализировать «это может быть любое значение, поэтому вы должны выполнить некоторый тип проверки, прежде чем использовать его». Розенвассер говорит:
«это заставляет пользователей безопасно анализировать возвращаемые значения, потому что unknown» практически ничему не может быть присвоено без утверждения типа. Вы также не можете получить доступ к каким-либо свойствам на основе unknown, а также не можете их вызывать / создавать ».
Последнее главное улучшение — это добавление нового псевдонима типа, который можно использовать с JSX defaultProps, используемым в React. Розенвассер говорит, что, несмотря на длинное название LibraryManagedAttributes,
«это просто вспомогательный тип, который сообщает TypeScript, какие атрибуты принимает тег JSX. Вкратце, с помощью этого общего типа мы можем моделировать специфическое поведение React для таких вещей, как defaultProps и, в некоторой степени, propTypes».