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.