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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software