Мои мысли о новом выпуске TypeScript.

Стабильная версия TypeScript 4.2 была выпущена 23 февраля. Когда я исследовал новую версию, я обнаружил несколько интересных функций и критических изменений. Итак, в этой статье я укажу на эти функции, узнаю, как последняя версия повлияет на разработчиков, на точку зрения разработчиков, которую я извлек из некоторых сообществ разработчиков, и, наконец, сделаю вывод, нужно ли нам обновляться до версии 4.2.

Если вы используете VS Code, я предлагаю вам загрузить плагин VS Code Insider для последней версии TypeScript или получить поддержку редактора для Sublime через Sublime package controller.

Интересные возможности TS 4.2

  • Изменения в типах кортежей.
  • Абстрактная конструкция Подписи.
  • Были добавлены улучшения для лучшего понимания процесса компиляции.
  • Улучшения для оператора in.
  • Улучшенный псевдоним типа.

Изменения в типах кортежей.

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

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

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

В предыдущих версиях… rest можно использовать только как последний элемент кортежа. Однако в версии 4.2 TypeScript позволяет… оставлять элементы в любом типе кортежа.

Мысли разработчика

Одна из самых больших проблем с Typescript заключается в том, что существуют плохо типизированные библиотеки JavaScript. Однако разработчикам потребуется некоторое время, чтобы прекратить писать JavaScript. До тех пор эти библиотеки не будут перенесены на Typescript.

Также хорошо иметь флаг «объяснение» для типов. Например, объясните как “single typed”. Поскольку это одна из распространенных проблем разработчиков при объединении интерфейсов, они импортируются правильно.

Совет: используйте независимые компоненты для увеличения скорости и масштабирования.

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

Инструменты OSS, такие как Bit, предлагают отличные возможности разработчика для создания независимых компонентов и составления приложений. Многие команды начинают с создания своих дизайн-систем или микро-интерфейсов с помощью независимых компонентов.
Попробуйте →

Абстракция Construct Подписи

Абстракция - одна из важных особенностей TyepScript. TypeScript позволяет разработчикам использовать модификатор abstract, чтобы пометить класс как абстрактный. Чтобы создать экземпляры для извлечения свойств и поведения абстрактных классов, разработчикам необходимо следовать базовой концепции ООП, которая заключается в расширении абстрактного класса с помощью подкласса и создании экземпляров объектов.

Кроме того, Mixins - один из передовых методов TypeScript, который также относится к той же теме.

Mixins: - это метод создания классов из компонентов многократного использования с использованием более простых классов.

До версии 4.2 при использовании mixins с abstract classes были некоторые ошибки. Проверьте следующий фрагмент кода.

Здесь возникает ошибка, заключающаяся в том, что абстрактные типы конструкторов не могут быть присвоены неабстрактным типам конструкторов.

В качестве модификации этой проблемы версия 4.2 позволяет разработчикам использовать модификатор abstract для сигнатур конструкторов.

let newConstructor: abstract new () => hasPrice = Candy;

Взгляд разработчика

Использование abstract не помешает вам передать другие классы / функции конструктора. Основное преимущество заключается в том, что любой тип класса безопасно передавать конструктору.

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

Были добавлены улучшения для лучшего понимания процесса компиляции.

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

Однако с версией 4.2 можно получить имена файлов, которые TypeScript находит как часть проекта. Кроме того, Typescript находит причины, по которым файлы должны быть частью процесса компиляции.

Запустите tsc против папки проекта и получите результат, как показано ниже.

Улучшения для оператора in.

Ошибочно использовать первичную переменную справа от оператора in, что является общим правилом программирования. Однако до версии 4.2 его не было в TypeScript.

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

“test var” in 31 // will immediate leads to an error.

По словам разработчиков TypeScript, новая ошибка улучшения приведет к сбоям в трех тестовых примерах:

  • keyofAndIndexedAccess
  • inOperatorWithValidOperands
  • conditionalTypeDoesntSpinForever

Улучшенный псевдоним типа

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

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

Кроме того, при создании экземпляров распределенных типов (таких как гомоморфные отображаемые типы и распределительные условные типы) теперь правильно сохраняется псевдоним исходного типа, когда создание экземпляра приводит к типу объединения:

Мнение разработчиков: что такое товары?

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

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

Мнение разработчиков: что такое плохие?

Большинству разработчиков нравится разрешать noUncheckedIndexedAccess для своих кодов. Однако из-за внезапных изменений новой версии ее нельзя использовать из-за ошибок.

Одна из необходимых функций TyepScript - это strict flag, который делает ‘as const’ implicit, который использует ‘const’ binding.

Наконец, одна из проблем разработчиков заключается в том, как все эти быстрые функции были добавлены в TypeScript.

При таком большом количестве обновлений TypeScript люди начинают задаваться вопросом, не наступит ли в ближайшее время момент, когда станет слишком сложно знать все это, как и C ++.

Лето

В этой статье я рассказал о функциях 05 и о том, как они повлияют на жизнь разработчиков. Есть как изнанка, так и правая сторона выпуска. Однако такие функции, как Изменения в типах кортежей и сигнатуры абстрактных конструкций, повлияют на большую часть кода разработчиков.

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

По словам разработчиков, включение функций должно происходить постепенно или в основных версиях. В противном случае TypeScript превратится в C ++, где никто не знает всего (возможно, это знают дизайнеры).

Спасибо за чтение. Не стесняйтесь оставлять комментарии ниже и делиться своим опытом.

Подробнее