Назад к вопросам
Росатом
Junior — Middle
108
Использовал ли ты паттерн Decorator при работе с TypeScript для расширения функциональности объектов?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Паттерн Decorator в TypeScript используется для динамического расширения функциональности объектов без изменения их исходного кода. Это достигается путем создания оберток (декораторов), которые добавляют новое поведение.
Пример использования паттерна Decorator в TypeScript:
interface Component {
operation(): string;
}
class ConcreteComponent implements Component {
operation(): string {
return "Основная функциональность";
}
}
class Decorator implements Component {
protected component: Component;
constructor(component: Component) {
this.component = component;
}
operation(): string {
return this.component.operation();
}
}
class ConcreteDecorator extends Decorator {
operation(): string {
return `Декорировано -> ${super.operation()}`;
}
}
// Использование
const simple = new ConcreteComponent();
const decorated = new ConcreteDecorator(simple);
console.log(decorated.operation()); // Выведет: Декорировано -> Основная функциональность
Таким образом, можно расширять объекты, не меняя их исходный код, что удобно для добавления новых возможностей или логирования.