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

conta.depositar is not a function

Ao tentar executar o código no fim da aula me deparo com a seguinte mensagem:

file:///c:/Users/Cliente/Desktop/Alura/projetobank/ContaCorrente.js:23
    conta.depositar(valorSacado)
          ^

TypeError: conta.depositar is not a function
    at ContaCorrente.transferir (file:///c:/Users/Cliente/Desktop/Alura/projetobank/ContaCorrente.js:23:11)
    at file:///c:/Users/Cliente/Desktop/Alura/projetobank/index.js:32:22

Dentre as possibilidades eu imaginei que poderia ter exportado ou importado errado, mas aparentemente esse não é o problema.

4 respostas

pode mandar o código?

Index.js

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

const cliente1 = new Cliente()
cliente1.nome = 'Ricardo'
cliente1.cpf = 11122233344

const cliente2 = new Cliente()
cliente2.nome = 'Laura'
cliente2.cpf = 12122232344

const contaCorrenteRicardo = new ContaCorrente()
//contaCorrenteRicardo.saldo = 0
contaCorrenteRicardo.agencia = 1001
contaCorrenteRicardo.cliente = cliente1

contaCorrenteRicardo.deposiatar(500)
//contaCorrenteRicardo.deposiatar(100)

//contaCorrenteRicardo.deposiatar(100)
//const valorSacado = contaCorrenteRicardo.sacar(150)
//console.log(valorSacado)

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

//contaCorrenteRicardo.transferir(200, conta2)

console.log(conta2)
//console.log(contaCorrenteRicardo)
contaCorrenteRicardo.transferir(200, conta2)
console.log(conta2)

ContaCorrente.js

export class ContaCorrente {
  agencia
  cliente

  saldo = 0

  sacar(valor) {
    if (this.saldo >= valor) {
      this.saldo -= valor
      return valor
    }
  }

  deposiatar(valor) {
    if (valor <= 0) {
      return
    }
    this.saldo += valor
  }

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

Cliente.js

export class Cliente {
  nome
  cpf
}

package.jason

{
  "name": "bytebank",
  "version": "1.0.0",
  "description": "Projeto bytebank para seus clientes",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Ragner",
  "license": "ISC",
  "type": "module"
}
solução!

Ragner, veja que no método transferir (em ContaCorrente.js) está escrito "depositar", enquanto nos outros métodos está "deposiatar"

Obrigado Marcelo, era isso mesmo. Depositar não era uma função porque "deposiatar" era kkk