Есть новая версия TypeScript, в которой усилена проверка типов для методов функций и добавлен способ обработки распространения существующих объектов на новые объекты.
TypeScript — это надмножество JavaScript, разработанное Microsoft. Идея состоит в том, чтобы добавить статическую проверку типов в JavaScript, чтобы вы могли выявлять проблемы еще до того, как вы запустите свой код.
TypeScript основан на стандарте ECMAScript и включает поддержку дополнительных статических типов, которые предназначены для упрощения использования при создании больших клиентских или серверных приложений. После создания ваш код TypeScript преобразуется в чистый, работоспособный JavaScript. TypeScript включает поддержку редактора для Visual Studio 2015 и 2017, Sublime Text 3 и Visual Studio Code.
Одно из изменений в этой новой версии — более строгая проверка привязки, вызова и применения. Это методы функций, и до сих пор TypeScript не мог моделировать функции. Поэтому связывание, вызов и применение были разработаны так, чтобы принимать любое количество аргументов и возвращать любые. Функции стрелок и аргументы rest / spread в ES2015 упростили выражение того, что делают некоторые методы, но разработчики TypeScript переработали реализацию так, чтобы она использовала списки параметров моделирования с типами кортежей и что TypeScript использует связывание, вызов и apply можно более строго проверить, если вы решите использовать новый флаг под названием strictBindCallApply.
Еще одно улучшение этой версии — способ, которым TypeScript обрабатывает распространение существующих объектов на новые. Вы можете распространить объект, чтобы скопировать его существующие свойства, но до сих пор TypeScript требовалось достаточно много знать о типе, а это означало, что он не работал с универсальными шаблонами. Разработчики TypeScript пытались придумать общее правило обработки разворотов, но это было очень сложно. Однако был использован более прагматичный подход, основанный на пересечениях. Это работает для большинства вариантов использования разворотов в JavaScript, где пользователи могут моделировать поведение с помощью типов пересечений (например, Foo & Bar). Также существует Object.assign — функция, которая демонстрирует большую часть поведения распространяющихся объектов. Это уже смоделировано с использованием типов пересечений, и разработчики TypeScript говорят, что они не видели очень мало отрицательных отзывов по этому поводу.
Ввиду всего этого TypeScript 3.2 теперь разрешает распространение объектов на универсальных шаблонах и моделирует их с помощью пересечений.
Другие улучшения в этом выпуске включают наследование конфигурации через пакеты node_modules; и новый примитивный тип, названный bigint. В ECMAScript есть предложение добавить bigInts, чтобы обеспечить способ моделирования теоретически произвольно больших целых чисел.
.
Ян Эллиот — автор книги «Просто JavaScript: идиоматический подход»; JavaScript Async; Just jQuery: Core UI и Just jQuery: Events, Async & Ajax, которые являются частью библиотеки I Programmer Library, опубликованной I / O Press.