Пытаюсь понять, как декораторам удаётся вызывать конструктор компонента с нужными сервисами в нужном порядке, руководствуясь перечислением аргументов в самом конструкторе. Не замешан ли здесь дополнительный препроцессор или можно это повторить средствами TypeScript?
Inject работает на базе reflect-metadata
Это дополнительная JS-библиотека, точнее Metadata Reflection это одно из API ES7, а reflect-metadata это полифилл