Na atividade Revisando decorators da aula 4 do curso de Typescript, foi introduzida uma forma de fazer uso do event de forma implícita, porém fiquei com uma dúvida.
No código abaixo, similar ao exibido na aula, apesar de ter funcionado corretamente, não entendi de onde a variável event vem... quem é que passa seu valor? Isso vem de ...args?
export function Throttle(timeInMilliseconds: number) {
return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
const originalMethod = descriptor.value;
let timer = 0;
descriptor.value = function(...args: any[]) {
if (event) {
event.preventDefault();
}
clearInterval(timer);
timer = setTimeout(() => originalMethod.apply(this, args), timeInMilliseconds);
};
return descriptor;
};
}
Ao debugar, args possui um array com uma única posição, porém não recebe o nome de event.
O que estou tentando fazer é entender de onde vem esse valor. Quem passou o valor para a variaǘel event? Se não estivesse utilizando assim, qual seria a melhor forma de pegar o valor do event?