Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Decorator Inspect - Parâmetros

Boa noite, Prezados.

Ao criar o decorator inspect, ele recebe 3 parâmetros, quando decoro o metodo, eu nāo passo estes 3 parâmetros, eles vem de onde, quem prove eles? Node?

export  function inspect_v2 (
        target: any,
        propertyKey: string,
        descriptor: PropertyDescriptor
    ) {
        const metodoOriginal = descriptor.value;
        descriptor.value = function(...args:any[]){
            console.log(`--- Metodo ${propertyKey}`);
            console.log(`------ Parâmetro ${JSON.stringify(args)}`);
            const retorno = metodoOriginal.apply(this,args);
            console.log(`------ Retorno ${JSON.stringify(retorno)}`);
            return retorno;
        }

        return descriptor;
    }
 @inspect_v2
    @logarTempoDeExecucao()
    public adiciona(): void {

        const negociacao = Negociacao.criaDe(
            this.inputData.value,
            this.inputQuantidade.value,
            this.inputValor.value
        );

        if (!this.ehDiaUtil(negociacao.data)) {
            this.mensagemView
                .update('Apenas negociações em dias úteis são aceitas');
            return;
        }

        this.negociacoes.adiciona(negociacao);
        this.limparFormulario();
        this.atualizaView();
    }

grato.

1 resposta
solução!

Fala Flávio, tudo bem? Espero que sim!

Esses trẽs parâmetros o próprio typescript nos provem no momento de compilação, ele analisa o código e enviar pra gente esses parâmetros, isso tudo "por baixo dos panos", ficou mais claro?

Caso ainda enteja com dúvida você pode consultar própria documentação sobre os decorators

Espero ter ajudado, abraços e bons estudos :D