Nao consigo usar a variavel timer no setTimeOut():
export function throttle(milissegundos:number = 500){
return function(target: any, propertyKey: string, descriptor: PropertyDescriptor){
/* Implementacao do metodo original dentro do .value */
const metodoOriginal = descriptor.value;
let timer: any = 0;
/* Chamada do metodo original */
descriptor.value = function(...args:any[]){ /* Transforma todos os argumentos em uma array de argumentos */
if(event) event.preventDefault();
clearInterval(timer);
timer = setTimeout(() => metodoOriginal.apply(this,args),milissegundos);
/* Arrow function sem {} tem o return implicito */
}
return descriptor;
}
}