advanced

Decorators и metadata

Распознавайте decorators как framework-facing metadata hooks, которые улучшают declarative APIs, но могут скрывать control flow и усложнять typing.

Декораторы TypeScript вешают метаданные и сквозное поведение на классы, методы и параметры — типично в NestJS (`@Controller`, `@Injectable`) и legacy Angular. Декларативный routing, validation и DI registration скрывают императивную сборку от читателя.

Стадии experimental decorators и reflect-metadata влияют на обнаружение типов в runtime.

На интервью: как Nest route decorator связывается с method controller и минусы (магия, сложнее тесты, typing edge cases).

Типовые ошибки: бизнес-логика в декораторах; сюрпризы порядка decorator; emitDecoratorMetadata без понимания лимитов.

Компромисс — краткий framework DSL против непрозрачного control flow для новичков.

Чеклист:

  • Стадия decorators и config TS.
  • Тонкие decorators — wiring, не правила.
  • Тестируйте поведение, не только наличие decorator.