Sobes.tech
Back to questions
Junior — Middle
85

Расскажите о вашем опыте использования декораторов в программировании.

Companies where asked
Бизнес-Азимут

Answer from AI

sobes.tech AI

В программировании, в частности в JavaScript и Node.js, декораторы — это функции, которые позволяют модифицировать поведение других функций, методов или классов без изменения их исходного кода.

Я использовал декораторы для:

  • Логирования вызовов функций — чтобы автоматически выводить информацию о входных параметрах и результатах.
  • Кэширования результатов функций с дорогими вычислениями.
  • Валидации данных перед выполнением метода.

Пример простого декоратора в JavaScript:

function logDecorator(fn) {
  return function(...args) {
    console.log(`Вызов функции ${fn.name} с аргументами:`, args);
    const result = fn.apply(this, args);
    console.log(`Результат:`, result);
    return result;
  };
}

function sum(a, b) {
  return a + b;
}

const decoratedSum = logDecorator(sum);
decoratedSum(2, 3);

В TypeScript и современных версиях JavaScript есть синтаксис декораторов для классов и методов, что упрощает их использование и делает код более выразительным.