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 depositado deve ser maior que zero!");
}
saldo += valor;
}
const Conta = {
getSaldo() {
return saldo;
},
getDataAcesso() {
return new Date();
},
registrarTransacao(novaTransacao: Transacao): void {
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!");
}
console.log(novaTransacao);
},
};
export default Conta;
NovaTransacao.ts:
import Conta from "../types/Conta.js";
import { TipoTransacao } from "../types/TipoTransacao.js";
import { Transacao } from "../types/Transacao.js";
import SaldoComponent from "./SaldoConta.js";
const elementoFormulario = document.querySelector(
".block-nova-transacao form"
) as HTMLFormElement;
elementoFormulario.addEventListener("submit", function (event) {
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 + " 00:00:00");
const novaTransacao: Transacao = {
tipoTransacao: tipoTransacao,
valor: valor,
data: data,
};
Conta.registrarTransacao(novaTransacao);
SaldoComponent.atualizar();
elementoFormulario.reset();
} catch(erro){
alert(erro.message);
}
});
});
Nesta parte: 'catch(erro){ alert(erro.message); }' esta dando o seguinte error: 'erro' is of type 'unknown'. Já mudei para 'cathc(erro: Error){ alert(erro.message);}' mas da outro error: 'Catch clause variable type annotation must be 'any' or 'unknown' if specified. Ai mudei para ''cathc(erro: any){ alert(erro.message);}' não da erro, mas não mostra os erros. Como fazer a tranferência de 5000 reais sendo que na conta possui 3000 que tratei no arquivo Conta.ts.
Alguém pode me ajudar??