Объяснение опущенного типа в TypeScript

Объяснение опущенного типа в TypeScript

27 апреля 2022 г.

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


Пользовательские типы


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


TypeScript Пропустить тип


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


Например, если бы мы хотели создать пользовательский тип пользователя с четырьмя полями — «firstName», «lastName», «age» и «lastActive», мы могли бы сделать что-то вроде этого:


```javascript


введите Пользователь = {


имя: строка;


фамилия: строка;


возраст: число;


lastActive: число;


К сожалению, кодирование не всегда просто. Иногда мы хотим снова использовать наш тип, но удалить из него определенные элементы, создав таким образом новый тип. Для этого мы можем использовать Omit<Type, Omissions>. Omit принимает два значения:


  • Тип, на котором основывается наш новый тип

  • Тип объединения, в котором перечислены все поля, которые нужно удалить.

Например, если мы хотим взять наш тип User и удалить age и lastActive, мы можем сделать следующее:


```javascript


введите Пользователь = {


имя: строка;


фамилия: строка;


возраст: число;


lastActive: число;


введите UserNameOnly = Omit<Пользователь, "возраст" | "последний актив">


Теперь у нас есть два типа: User, который является нашим основным типом пользователя, и UserNameOnly, который является нашим типом пользователя минус age и lastActive. Точно так же, если бы мы хотели удалить только возраст, этого было бы достаточно:


```javascript


введите UserNameAndActive = Omit<Пользователь, "возраст">


Теперь мы можем использовать наши новые типы в любом месте нашего кода. Это дает нам возможность гибко использовать тип и преобразовывать его для определенных обстоятельств. Вот пример, в котором используются оба наших новых типа:


```javascript


введите Пользователь = {


имя: строка;


фамилия: строка;


возраст: число;


lastActive: число;


введите UserNameOnly = Omit<Пользователь, "возраст" | "последний актив">


введите UserNameAndActive = Omit<Пользователь, "возраст">


константа userByName:UserNameOnly = {


Имя: "Джон",


фамилия: "Доу",


константа userWithoutAge:UserNameAndActive = {


Имя: "Джон",


фамилия: "Доу",


lastActive: -16302124725


Также опубликовано здесь



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE