Ответ
Декоратор — это специальная функция, которая добавляет метаданные или изменяет поведение класса, метода, свойства или параметра. В TypeScript декораторы применяются с @
-синтаксисом и выполняются во время инициализации класса.
Пример декоратора метода:
function log(target: any, key: string, descriptor: PropertyDescriptor) {
const originalMethod = descriptor.value;
descriptor.value = function(...args: any[]) {
console.log(`Calling ${key} with args:`, args);
return originalMethod.apply(this, args);
};
return descriptor;
}
class Example {
@log
greet(name: string) {
return `Hello, ${name}!`;
}
}
Основные типы декораторов:
- Класса (
@ClassDecorator
) - Метода (
@MethodDecorator
) - Свойства (
@PropertyDecorator
) - Параметра (
@ParameterDecorator
)
Декораторы часто используются для логирования, валидации, dependency injection (например, в Angular) или модификации поведения.