Декоратор машинописного текста: Внедрить объект в метод из декоратора

#node.js #typescript #decorator

Вопрос:

У меня есть случай использования, когда метод класса может быть аннотирован таким образом, и его аргументы и возврат будут записаны в консоль вместе с именем метода с помощью @log decorator

 @log
async doOperation(action: String){

}
 

Теперь я также хочу, чтобы у метода doOperation были свои собственные необходимые инструкции для ведения журнала, но я не хочу жестко кодировать имя метода внутри него. Я могу это сделать

 @log
async doOperation(action: String, logger?: Logger){

}
 

и передайте экземпляр регистратора от декоратора, но это может создать много проблем, когда он будет использоваться для разных методов с разными параметрами, и может вызвать проблемы при их расширении. Есть ли какой-нибудь хороший способ, которым я могу пометить параметр как параметр только для декоратора(будет передаваться только декораторами, вызывающие абоненты не могут его передать).

Пожалуйста, обратите внимание, что я не могу сохранить экземпляр регистратора в экземпляре класса, потому что что, если один и тот же экземпляр класса используется в один момент для синхронного вызова двух разных методов.