Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

event is undefined

O seguinte código não funciona com o seguinte erro: "ReferenceError: event is not defined"

export function throttle(miliseconds: number = 500) {

    return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {

        let timer = 0;
        const method = descriptor.value;

        descriptor.value = function (...args: any[]) {
            if (event)
                event.preventDefault();
            clearInterval(timer);
            timer = setTimeout(() => method.apply(this, args), miliseconds);
        }

        return descriptor;
    }
}
3 respostas

Qual versão do TypeScript está usando?

Olá,

Encontrei o mesmo erro ao executar o código do "throttle", estou utilizando o Firefox Nightly durante o treinamento. Como o instrutor Flávio utiliza o Google Chrome, executei o mesmo código e no navegador do google funciona.

Alguma razão para no firefox não funcionar?

Alguma dica de como "debugar" esse erro, supondo que não fosse um treinamento, mas sim mundo real?

No opera também funciona, mas não faz diferença, já que chrome e opera utilizam o chromium como base.

solução!

Parece que o Firebox não suporta, ainda, o event implícito. Nesse caso remova a instrução event.preventDefault (). Você fará esse procedimento no próprio método e não há nenhum problema nisso. Esse event implícito foi um plug para ficar mais elegante do que já é.