2
respuestas

Error con el set

Saludos, mis clases son las siguientes:

export class Cliente

{
    nombreCliente;
    dniCliente;
    rfcCliente;

    constructor(nombreCliente,dniCliente,rfcCliente){
        this.nombreCliente=nombreCliente;
        this.dniCliente=dniCliente;
        this.rfcCliente=rfcCliente;
    }

}
export class cuentaCorriente{
    #cliente;
    numero;
    #saldo;
    agencia;

    set cliente(valor){
        if(valor instanceof Cliente)
        this.#cliente=valor;
    }

    get cliente(){
        return this.#cliente;
    }

    constructor(cliente,numero,agencia){
        this.cliente=cliente;
        this.#saldo=0;
        this.agencia=agencia;
        this.numero=numero;
    }

    depositoEnCuenta(valor){
        if(valor>0){
            this.#saldo+=valor;
        return this.#saldo; 
        }      
    }   

    retirarDeCuenta(valor){
        if(valor<=this.#saldo){
            this.#saldo-=valor;
        return this.#saldo; 
        }  
    }

    verSaldo(){
        return this.#saldo;
    }

    transferirParaCuenta(valor, cuentaDestino){
        this.retirarDeCuenta(valor);
        cuentaDestino.depositoEnCuenta(valor);
    }
}

Todos los archivos están en la misma carpeta, incluido el package.json, pero al momento de correr el index.js me muestra el siguiente error: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

Hola Juan, importaste la clase cuentaCorriente en Cliente??

Hola Juan,

Este error sucede debido a que en tu archivo de clase cuentaCorriente estás citando específicamente en la línea "if(valor instanceof Cliente)" - que pertenece al método set- a otra clase llamada Cliente, la cual no es conocida en todo el documento.

Puedes corregir este error importando dicha clase -Cliente- al inicio del documento con la siguiente línea:

import { Cliente } from "./Cliente.js"; // aclaro que lo que está en itálica se refiere a la ruta dónde tengas ubicado el archivo de la clase cliente.

TIP: Trata de no dejar espacios en blanco en los nombres de tus carpetas y archivos para evitar errores de políticas de seguridad en tu navegador.