1
resposta

Erro na definição de atributo privado dentro do método construtor.

Tentei implementar "propriedades de instâncias devem ser definidas dentro dos métodos da classe" conforme falado pelo instrutor Bugan,

export class SavingAccount {
    constructor (initialBalance, client, agency){
        this.#client = client;
        this.#balance = initialBalance;
        this.agency = agency;
    }
}

O seguinte erro apareceu:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Estou na duvida se isso ocorreu devido a implementação oficial de atributos privados, sendo que não houve mudança na documentação MDN, e no exemplo mostrado na mesma consta apenas atributos públicos.

class Retangulo {
  constructor(altura, largura) {
    this.altura = altura;
    this.largura = largura;
  }
}
1 resposta

Olá Lucas, tudo bem?

Peço desculpas pela demora em obter um retorno

O erro que você está enfrentando ocorre porque você está tentando usar uma propriedade privada (definida com a sintaxe #propertyName) fora da classe na qual ela foi declarada. Essa sintaxe é uma adição recente ao JavaScript, introduzida na especificação ES2022, e nem todos os ambientes JavaScript suportam essa funcionalidade ainda.

É importante mencionar que a sintaxe de atributos privados já foi oficialmente implementada no JavaScript, mas ela ainda não é suportada por todos os navegadores.

A sintaxe que você utilizou, com o # antes do nome do atributo, é uma proposta de implementação de atributos privados e não é suportada por todos os navegadores, como dito anteriormente. Para resolver o erro, você pode simplesmente remover o # antes dos nomes dos atributos e utilizar a sintaxe tradicional de atributos públicos, como no exemplo que você citou da classe Retângulo.

Espero ter ajudado, qualquer dúvida, me coloco à disposição! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!