«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Приключения TypeScript с вызовами типа — Day Pick

Приключения TypeScript с вызовами типа — Day Pick

Опубликовано 3 ноября 2024 г.
Просматривать:644

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

Сегодня я хотел бы поделиться тем, что я узнал о Pick.

- Задача -

interface Todo {
  title: string
  description: string
  completed: boolean
}

type TodoPreview = MyPick

const todo: TodoPreview = {
    title: 'Clean room',
    completed: false,
}

Реализовать встроенный универсальный выбор Pick без его использования.
Создает тип, выбирая набор свойств K из T.

- Описание -

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

- Мое решение -

interface Todo {
  title: string;
  description: string;
  completed: boolean;
}

type MyPick = {
  [k in U]: T[k];
};

type TodoPreview = MyPick;

const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
};

- Объяснение -

Позвольте мне объяснить построчно.

В первой строке MyPick получает два аргумента: T и U расширяет ключ T.

TypeScript Adventures with type-challenges – Day Pick

T: базовый тип, включающий все свойства.
U расширяет ключ T: определяет свойства, которые необходимо включить в тип вывода.

О ключе
О расширениях

Во второй строке
Он создает новый тип, который извлекает из данного аргумента только указанные свойства.

TypeScript Adventures with type-challenges – Day Pick

О сопоставленных типах, таких как [k в U]

Как вы можете видеть ниже, новый тип, исключающий описание из Todo, создается путем предоставления в MyPick только заголовка и его завершения.

TypeScript Adventures with type-challenges – Day Pick

Удачного программирования☀️

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/noah-00/typescript-adventures-with-type-challenges-day-1-pick-5fdj?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3