Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Parâmetros no na Função

Olá!

Ainda não conseguir assimilar sobre os 3 parâmetros. Não consigo ver como o propertyKey pode chamar o nome do método dos outros arquivos. E esse descriptor no final da função é retornado?

1 resposta
solução!

Oi Rodolfo, tudo bem?

Desculpe a demora em retornar.

Os três parâmetros mencionados em decorators são geralmente utilizados para decorar classes e métodos, e eles possuem a seguinte função:

  1. O primeiro parâmetro é o objeto de destino, que pode ser uma classe (para decorators de classe) ou um objeto protótipo (para decorators de método).

  2. O segundo parâmetro é o nome da propriedade, que é uma string que representa o nome do método ou propriedade em que o decorator está sendo aplicado. Este parâmetro é opcional e não precisa ser usado em todos os casos.

  3. O terceiro parâmetro é o descritor, que é um objeto que define as propriedades da propriedade ou método que está sendo decorado. O descritor inclui coisas como o valor da propriedade, se é gravável ou não, se é enumerável, etc.

Agora um exemplo para entender melhor:

function meuDecorator(target: Object, propertyKey: string, descriptor: PropertyDescriptor) {
  console.log("alvo:", target); // log do objeto alvo
  console.log("propertyKey:", propertyKey); // log do nome da propriedade
  console.log("descritor:", descriptor); // log do objeto descritor
}

class MinhaClasse {
  @meuDecorator
  meuMetodo() {
    console.log("Olá, mundo!");
  }
}

No exemplo acima, estamos definindo um decorator chamado meuDecorator e aplicando-o ao método meuMetodo da classe MinhaClasse. Quando o código é executado, o decorator é chamado com os três parâmetros. O primeiro parâmetro é a própria classe MinhaClasse, o segundo parâmetro é o nome do método "meuMetodo" e o terceiro parâmetro é o objeto descritor que define o método.

Respondendo à sua pergunta específica, o propertyKey não chama o nome do método em outros arquivos, ele simplesmente recebe o nome da propriedade em que o decorator está sendo aplicado. E sim, o objeto descriptor é retornado no final da função do decorator.

Espero ter ajudado a esclarecer suas dúvidas.

Um abraço e bons estudos.