Освоение выбора TypeScript: подробное руководство по извлечению подмножеств свойств

Служебный тип Pick

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

Метод 1: извлечение базового свойства
Самый простой способ использования Pick— выбрать одно или несколько свойств из существующего типа. Вот пример:

type Person = {
  name: string;
  age: number;
  email: string;
};
type PersonBasicInfo = Pick<Person, 'name' | 'age'>;
const person: PersonBasicInfo = {
  name: 'John Doe',
  age: 30,
};

В этом примере мы создаем новый тип PersonBasicInfo, используя Pick, чтобы выбрать только свойства «имя» и «возраст» из Personтип.

Метод 2: динамическое извлечение свойств
Pickтакже можно использовать динамически, принимая имена свойств в качестве аргументов. Вот пример:

type PickProperties<T, K extends keyof T> = Pick<T, K>;
type PersonBasicInfo = PickProperties<Person, 'name' | 'age'>;
const person: PersonBasicInfo = {
  name: 'John Doe',
  age: 30,
};

В этом примере мы определяем универсальный тип PickProperties, который принимает исходный тип Tи массив имен свойств K. Затем мы используем Pickдля извлечения указанных свойств из T.

Метод 3: условное извлечение свойств
Используя условные типы, мы можем условно извлекать свойства на основе определенных условий. Вот пример:

type ExtractProperties<T, Condition> = {
  [K in keyof T]: T[K] extends Condition ? T[K] : never;
};
type AdultPerson = ExtractProperties<Person, number>;
const person: AdultPerson = {
  name: 'John Doe',
  age: 30,
};

В этом примере мы определяем универсальный тип ExtractProperties, который перебирает каждое свойство Tи извлекает свойства, соответствующие заданному условию. В данном случае мы извлекаем свойства типа number, чтобы создать новый тип AdultPerson.

Служебный тип Pick

TypeScript — ценный инструмент для извлечения подмножеств свойств из существующих типов. Мы исследовали различные методы, включая извлечение базовых свойств, извлечение динамических свойств и условное извлечение свойств. Используя Pick, разработчики могут писать более выразительный и удобный в сопровождении код. Понимание универсальности Pickпозволяет разработчикам TypeScript создавать точные и повторно используемые типы.