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

[Dúvida] Criação de decorators

O instrutor criou 2 decorators, porém com estruturas praticamente identicas. Todos os decorators são dessa forma? No caso do target, propertKey e descriptor está claro, porém os demais eu não entendi muito bem. Como o const metodoOriginal = descriptor.value, descriptor.value = function(...args:[]) Será sempre assim?

1 resposta
solução!

Olá, Danilo! Tudo bem?

É comum que os decorators tenham estruturas semelhantes, pois eles seguem um padrão definido pelo TypeScript. Em relação aos parâmetros target, propertyKey e descriptor, eles são obrigatórios na criação de um decorator e representam respectivamente: a classe alvo, o nome do método ou propriedade e a descrição do método ou propriedade.

Quanto ao trecho de código que você mencionou, ele é utilizado para modificar o comportamento do método. O const metodoOriginal = descriptor.value armazena o valor original do método e o descriptor.value = function(...args:[]) substitui o método original por uma nova função que pode ter um comportamento modificado.

Vale lembrar que a estrutura exata do decorator pode variar de acordo com a necessidade do desenvolvedor, mas a utilização dos parâmetros target, propertyKey e descriptor é obrigatória.

Espero ter ajudado.

Um abraço e bons estudos!