Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

conta.depositar is not a function

ContaCorrente.js


export class ContaCorrente{
    //a # deve ser colocada dentro da class e alterada em todo o codigo
    cliente
    agencia
    #saldo = 0

    //adicionando função para evitar repétições no saque e deposito, ()para ser operação

    sacar(valor){
        //ao inves de usar contacorrente.nomedapessoa, vamos usar this para falar que é "This, dessa conta"
        if(this.#saldo > valor){
            this.#saldo -= valor
            //return faz o codigo parar, ele para de ler depois que a função for verdadeira

            //podiamos substituir o código por if()

            return valor
        }else{
            console.log("Você não tem saldo suficiente para sacar")
        }
    }

    transferir (valor, conta) {
        const valorSacado = this.sacar(valor);
        conta.depositar(valorSacado)
    }

    depositar(valor){
        if(valor => 0){
        //return faz o codigo parar, ele para de ler depois que a função for verdadeira

            //podiamos substituir o código por if(valor <= 0) return, o inverso da função ja que se ela fosse verdadeira o codigo parava de funcionar, o return esta vazio porque ele nao deve retornar um valor, somente parar o código
            this.#saldo += valor
            console.log(this.#saldo)
        }else{
            console.log("Não é possivel adicionar saldo negativo")
        }
    }


}

index.js

// para ser uma proposta PRIVADA use # antes de classe !!!!!!!! ou use o _ na frnte da classe
//para evitar repeticções usando a const use a class e coloque dentro o conteudo

//Separamos em módulos para ficar mais organizado, eles sempre começam com letras maiusculas
//agora vamos importar o arquivo aqui

import{Cliente} from "./Cliente.js"
import{ContaCorrente} from "./ContaCorrente.js"

//Para resolver o erro SyntaxError: Cannot use import statement outside a module use no terminao "npm init"

//para usar a class use new "o nome da class"

const cliente1 = new Cliente()
cliente1.nome = "Ricardo"
cliente1.cpf = 11122233345
cliente1.rg = 2131231231

const cliente2 = new Cliente()

cliente2.nome = "Alice"
cliente2.cpf = 11122234545
cliente2.agencia = 102
cliente2.rg = 123213123

const conta2 = new Cliente()
conta2.cliente = cliente2


const ContaCorrenteRicardo = new ContaCorrente
ContaCorrenteRicardo.agencia = 1001
ContaCorrenteRicardo.cliente = cliente1
ContaCorrenteRicardo.depositar(500)







//Se nao colocarmos o return.valor na logica do contacorrente vamos ter um erro "Undefined"
const valorSacado = ContaCorrenteRicardo.sacar(110)



let valorSacar = 200

console.log(valorSacado)
console.log(ContaCorrenteRicardo)
ContaCorrenteRicardo.transferir(200, conta2)
console.log(conta2)

Cliente.js

//Para poderem usar o codigo em outros arquivos adicionamos export na antes das classes
export class Cliente{
    nome;
    cpf;
    rg;
}
5 respostas

Olá , William!

Acho que o problema está em como você colocou o maior igual >= dentro do método depositar. Você sem querer colocou uma notação de arrow function =>.

 depositar(valor){
         // Aqui deveria ser >= (valor>= 0)
        if(valor => 0){
        //return faz o codigo parar, ele para de ler depois que a função for verdadeira

Fiz a alteração mas ele continua dando erro Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Oi, William!

Você não criou a segunda conta corrente, só o cliente2.

Realmente eu tinha esquecido, corrigi adicionando isso e fazendo algumas alterações no ContaCorrente.js

cliente2.nome = "Alice";
cliente2.cpf = 88822233309;

const contaCorrenteRicardo = new ContaCorrente();
contaCorrenteRicardo.agencia = 1001;
contaCorrenteRicardo.cliente = cliente1;

const conta2 = new ContaCorrente();
conta2.cliente = cliente2;
conta2.agencia = 102;

console.log(conta2);

O processo é esse mesmo, continue estudando e evoluindo , sempre!!!

Um grande abraço!