Всем привет.
Я работаю над проблемами типов, чтобы глубже погрузиться в TypeScript.
Сегодня я хотел бы поделиться тем, что я узнал о Pick.
interface Todo { title: string description: string completed: boolean } type TodoPreview = MyPickconst 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.
T: базовый тип, включающий все свойства.
U расширяет ключ T: определяет свойства, которые необходимо включить в тип вывода.
О ключе
О расширениях
Во второй строке
Он создает новый тип, который извлекает из данного аргумента только указанные свойства.
О сопоставленных типах, таких как [k в U]
Как вы можете видеть ниже, новый тип, исключающий описание из Todo, создается путем предоставления в MyPick только заголовка и его завершения.
Удачного программирования☀️
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3