1
resposta

return retorno; ou apenas retorno ?

Olá, Na aula, o professor utiliza o seguinte código:

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

    ) {
        const metodoOriginal = descriptor.value;
        descriptor.value = function (...args: Array<any>) {

            const t1 = performance.now();
            const retorno =  metodoOriginal.apply(this,args);

            const t2 = performance.now();

            console.log(`Tempo de execução do método ${propertyKey}: ${(t2 - t1) / 1000} segundos`)

            retorno;
        }

        return descriptor;
    }
}

Minha duvida esta na linha "retorno;". Não seria, return retorno ? Por exemplo,

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

    ) {
        const metodoOriginal = descriptor.value;
        descriptor.value = function (...args: Array<any>) {

            const t1 = performance.now();
            const retorno =  metodoOriginal.apply(this,args);

            const t2 = performance.now();

            console.log(`Tempo de execução do método ${propertyKey}: ${(t2 - t1) / 1000} segundos`)

            return retorno;
        }

        return descriptor;
    }
}
1 resposta

Olá!

Desculpe a demora em retornar.

A sua dúvida é muito pertinente. Na verdade, o código apresentado na aula está correto, pois o retorno; serve apenas para indicar o fim da função descriptor.value, mas não retorna nada.

No entanto, a sua sugestão de utilizar return retorno; também está correta e pode ser uma forma mais clara de indicar que a função deve retornar o valor da variável retorno.

Em resumo, ambas as formas estão corretas e funcionam da mesma maneira. O importante é escolher a que mais faz sentido para você e para o seu código.

Espero ter ajudado.

Um abraço e bons estudos.