javascript - Decoradores para funções
Pelo que vejo, decoradores geralmente podem ser usados com classes e métodos dentro de classes. Existe uma maneira de usar decoradores com funções normais como no código abaixo:
@myDecorator()
function someFunction() {
// do something
}
someFunction(); // running the function with the decorator.
Resposta #1
Não com a proposta atual. Decorar funções independentes, inicializadores de objetos e seus conteúdos, ou outras coisas, pode muito bem ser propostas subsequentes, mas a proposta atual apenas permite decorar classes e seus conteúdos.
Resposta #2
Decoradores não são suportados em funções de acordo com a proposta atual
Você pode alcançar um resultado semelhante usando uma chamada de função simples:
function myDecorator<Args extends any[], R>(fn: (...a: Args)=> R): (...a:Args) =>R {
return function (...a: Args) {
console.log("Calling");
return fn(...a);
}
}
const someFunction = myDecorator(function () {
console.log("Call");
});
someFunction();
