утилита, но специально для классов. В TypeScript утилита pickобычно используется для создания нового типа путем выбора определенных свойств из существующего типа. Однако не существует встроенной утилиты, которая напрямую применялась бы к экземплярам классов.
Чтобы добиться аналогичного эффекта с классами в TypeScript, вы можете создать вспомогательную функцию, которая принимает экземпляр класса и возвращает новый объект с выбранными свойствами. Вот пример реализации:
function pickFromClass<T, K extends keyof T>(instance: T, ...keys: K[]): Pick<T, K> {
const picked: any = {};
keys.forEach(key => {
picked[key] = instance[key];
});
return picked;
}
Эта функция pickFromClassпринимает два параметра типа: Tпредставляет тип класса, а Kпредставляет ключи, которые нужно выбрать из экземпляра класса.. Он принимает экземпляр класса в качестве первого аргумента, за которым следуют ключи, которые нужно выбрать.
Вот как вы можете использовать эту функцию:
class MyClass {
public prop1: string;
public prop2: number;
public prop3: boolean;
// ...other properties and methods
}
const instance = new MyClass();
instance.prop1 = "Hello";
instance.prop2 = 42;
instance.prop3 = true;
const picked = pickFromClass(instance, "prop1", "prop3");
console.log(picked); // Output: { prop1: "Hello", prop3: true }
В приведенном выше примере мы создаем экземпляр MyClassи присваиваем некоторые значения его свойствам. Затем мы используем функцию pickFromClassдля выбора свойств prop1и prop3из экземпляра, в результате чего создается новый объект, содержащий только выбранные свойства.п>