Cursos / Redes de Computadores / Programação Orientada a Objetos / Aula
class ContaBancaria{
public _saldo: number;
constructor(saldo: number){
this._saldo = saldo
}
@test()
public sacar(valor: number){
this._saldo -= valor;
console.log('saque realizado');
}
public get saldo() : number {
return this._saldo;
}
}
function test(){
return function(target: any, nomePropriedade: string,
descritor: PropertyDescriptor){
//console.log(`Nome do método: ${nomePropriedade}`)
let metodoOriginal = descritor.value
descritor.value = function(...args: any[]){
console.log('Comandos antes da execução do método');
let retorno = metodoOriginal.apply(this, args)
console.log('Comandos depois da execução do método');
return retorno;
}
return descritor;
}
}
Versão 5.3 - Todos os Direitos reservados