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

Declaração de Classes Privadas JS

Por que eu preciso colocar o parâmetro "_saldo" fora do construtor da classe sendo que no código ele já esta dentro do construtor ? quando eu não o declaro fora a mensagem de erro a seguir aparece: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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

export class ContaCorrente{
    static numeroDeContas = 0;
    //_saldo =0; // #saldo =0 https://github.com/tc39/proposal-class-fields#private-fields

    set cliente(novoValor){
        if(novoValor instanceof Cliente){
            this._cliente = novoValor
        }
    }

    get cliente(){
        return this._cliente;
    }

    get _saldo(){
        return this._saldo;
    }

    constructor(cliente, agencia,){
        this.agencia = agencia;
        this.cliente= cliente;
        this._saldo = 0; 
        ContaCorrente.numeroDeContas += 1;
    }

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

    depositar(valor){
        if(valor <= 0){
            return;
        }
        this._saldo += valor;
    }

    transferir(valor, conta){
        const valorSacado = this.sacar(valor);
        conta.depositar(valorSacado);
    }
}
3 respostas
solução!

Oi Danilo, tudo bom?

O erro está nessa linha get _saldo(), você não pode ter um getter com o mesmo nome de uma propriedade. Para resolver o problema basta deixa o seu getter sem o underline: get saldo().

Bons estudos.

Danilo, conseguiu resolver o problema?

Sim Diego, obrigado pelo tempo!!!