2
respostas

[Dúvida] Site continua dando o mesmo erro mesmo tendo o modificado.

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.

2 respostas

qual erro que dá? quanto mais detalhes vc mandar, melhor

Não emite erro no vs code, fiz o codigo de acordo com o professor mas não esta mudando nada no site, que no caso deveria ter parado de deixar a conta negativa e emitir um aviso.