Tô usando o VS Code para acompanhar as aulas e na parte de separar as classes e importar deu o erro SyntaxError: Cannot use import statement outside a module, então criei o package.json e adicionei o "type": "module" e dessa vez deu o erro Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Já tentei abrir e fechar o editor de código e apagar e recriar o package.json e continuou não funcionando.
O index.js:
import { Cliente } from "d:/Programas/JavaScript/ByteBank/Cliente.js";
import { ContaCorrente } from "d:/Programas/JavaScript/ByteBank/ContaCorrente.js";
const cliente1 = new Cliente();
cliente1.nome = "Ricardo";
cliente1.cpf = "111.222.333-44";
const cliente2 = new Cliente();
cliente2.nome = "Alice";
cliente2.cpf = "888.222.333-44";
const ContaCorrenteRicardo = new ContaCorrente();
ContaCorrenteRicardo.agencia = 1001;
console.log(ContaCorrenteRicardo);
O Cliente.js:
export class Cliente {
nome;
cpf;
}
O ContaCorrente.js:
export class ContaCorrente {
agencia;
_saldo = 0;
//por convenção da comunidade, que o atributo que possui _ na frente só pode ser mexido no escopo da classe.
/* #saldo = 0;
propriedade privada, não pode ser mudada fora da classe.
o campo privado não aparece quando chamado no console. */
Sacar(valor) {
if (this.#saldo >= valor) {
this.#saldo -= valor;
}
}
Depositar(valor) {
if (valor > 0) {
this.#saldo += valor;
}
}
}
O package.json:
{
"name": "bytebank",
"version": "1.0.0",
"description": "Projeto da Alura para o ByteBank",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Luisa",
"license": "ISC",
"type": "module"
}