
Как работает TypeScript Pick Type
3 мая 2022 г.Тип TypeScript Pick
— это служебный тип, который используется для создания нового пользовательского типа на основе уже существующего. Это противоположность Типу Опущения. Давайте посмотрим, как это работает.
Пользовательские типы
В этом руководстве мы используем пользовательские типы. Если вы не знакомы с пользовательскими типами, [ознакомьтесь с моим руководством по пользовательским типам здесь] (https://fjolt.com/article/typescript-creating-custom-types).
Тип утилиты выбора TypeScript
TypeScript имеет ряд служебных типов, которые по сути являются пользовательскими типами, решающими конкретную проблему. Проблема, которую решает Pick
, заключается в том, что у нас есть уже существующий тип и мы хотим создать новый тип, используя только пару полей этого типа. Например, предположим, что у нас есть тип User, который выглядит так:
```javascript
введите Пользователь = {
имя: строка,
фамилия: строка,
возраст: число
В другой части кода мы хотим сослаться на пользователя, но знаем, что данные содержат только имя и фамилию. Таким образом, мы не можем использовать тип «Пользователь», так как все поля являются обязательными. Если мы хотим создать новый тип на основе User, мы можем использовать Pick.
Pick
имеет два аргумента, первый – Type
, который мы хотим использовать, а второй – тип объединения или список полей, которые мы хотим выбрать из используемого нами типа. Пишем это так: Тип<Пользователь, "поля" | "к" | "включить">
. Например, давайте создадим новый тип, который имеет только firstName
и lastName
:
```javascript
введите Пользователь = {
имя: строка,
фамилия: строка,
возраст: число
typeUserName = Pick
Теперь, используя наш новый тип UserName
, мы можем определить переменную, состоящую только из firstName
и lastName
:
```javascript
пусть пользователь: имя_пользователя = {
имя: "Джон",
Фамилия: "Доу"
Если бы мы хотели создать новый тип, который содержал бы только возраст пользователя, мы могли бы также использовать Pick
. Вот пример:
```javascript
введите Пользователь = {
имя: строка,
фамилия: строка,
возраст: число
введите UserAge = Pick<Пользователь, "возраст">
пусть возраст: UserAge = {
возраст: 1534
Как видите, тип Pick очень удобен для создания пользовательских типов на основе уже существующих. Теперь, когда вы освоили его, вы можете упростить объявления типов.
Оригинал