Olá, não consegui entender a ordem de execução dos decorators, teria alguma forma de utilizar algo mais visível para ver a ação da execução?, ficou um pouco confuso na aula.
Olá, não consegui entender a ordem de execução dos decorators, teria alguma forma de utilizar algo mais visível para ver a ação da execução?, ficou um pouco confuso na aula.
Olá José! Tudo bem?
Os decorators em TypeScript são aplicados de cima para baixo, mas executados de baixo para cima. Isso significa que o primeiro decorator que você escreve é o último a ser executado.
Imagine que você tem dois decorators, @DecoratorA
e @DecoratorB
, aplicados a uma classe ou método:
@DecoratorA
@DecoratorB
class MinhaClasse {
// ...
}
Neste caso, DecoratorB
será aplicado primeiro, seguido por DecoratorA
. Para visualizar melhor a execução, você pode adicionar logs dentro dos decorators para ver a ordem em que eles são chamados:
function DecoratorA(target: any) {
console.log('DecoratorA executado');
}
function DecoratorB(target: any) {
console.log('DecoratorB executado');
}
@DecoratorA
@DecoratorB
class MinhaClasse {
// ...
}
Ao executar o código acima, você verá no console:
DecoratorB executado
DecoratorA executado
Isso ajuda a visualizar que, embora DecoratorA
esteja escrito antes de DecoratorB
, ele é executado depois.
Espero ter ajudado e bons estudos!