Conta.ts
import { Transacao } from "./Transacao.js";
import { TipoTransacao } from "./TipoTransacao.js";
let saldo: number = 3000;
function debitar(valor: number): void {
if (valor <= 0){
throw new Error("O valor a ser debitado deve ser maior que zero!")
}
if (valor > saldo){
throw new Error("Saldo insuficiente");
}
saldo -= valor;
}
function depositar(valor: number): void {
if(valor <= 0) {
throw new Error ("O valor a ser debitado deve ser maior que zero")
}
saldo += valor;
}
const Conta = {
getSaldo() {
return saldo;
},
getDataAcesso(): Date {
return new Date();
},
registrarTransacao(novaTransacao: Transacao): void {
try {
console.log(`Registrando transação: ${JSON.stringify(novaTransacao)}`);
if (novaTransacao.tipoTransacao == TipoTransacao.DEPOSITO) {
depositar(novaTransacao.valor);
}
else if (novaTransacao.tipoTransacao == TipoTransacao.TRANSFERENCIA || novaTransacao.tipoTransacao == TipoTransacao.PAGAMENTO_BOLETO) {
debitar(novaTransacao.valor);
}
else {
throw new Error("Tipo de Transação é inválido!");
}
} catch (error) {
console.error(`Erro ao registrar transação: ${error.message}`);
throw error;
}
console.log(`Saldo após transação: ${saldo}`);
}
}
export default Conta;
nova-transacao-component.ts
import { Transacao } from "../types/Transacao.js";
import { TipoTransacao } from "../types/TipoTransacao.js";
import SaldoComponent from "./saldo-component.js";
import Conta from "../types/Conta.js";
const elementoFormulario = document.querySelector(".block-nova-transacao form") as HTMLFormElement;
elementoFormulario.addEventListener("submit", function(event) {
try
{
event.preventDefault();
if (!elementoFormulario.checkValidity()) {
alert("Por favor, preencha todos os campos da transação!");
return;
}
const inputTipoTransacao = elementoFormulario.querySelector("#tipoTransacao") as HTMLSelectElement;
const inputValor = elementoFormulario.querySelector("#valor") as HTMLInputElement;
const inputData = elementoFormulario.querySelector("#data") as HTMLInputElement;
let tipoTransacao: TipoTransacao = inputTipoTransacao.value as TipoTransacao;
let valor: number = inputValor.valueAsNumber;
let data: Date = new Date(inputData.value);
const novaTransacao: Transacao = {
tipoTransacao: tipoTransacao,
valor: valor,
data: data
};
Conta.registrarTransacao(novaTransacao);
SaldoComponent.atualizar();
elementoFormulario.reset();
}
catch(erro) {
alert(erro.message);
}
});
Ja fiz a mesma alteração de uma outra dúdiva no forum mas não funcionou.