1
resposta

[Dúvida] VSCode apontou erro de sintaxe ao tentar alterar atributo privado

Quando eu digitei a linha "novoUser.#nome = "Márcia";", o próprio VSC apontou o erro de sintaxe, mas notei que isso não aconteceu no vídeo da aula.

print da tela do VSC destacando o erro de sintaxe na linha 9

Sei que isso não é um problema (na verdade é até uma vantagem), mas fiquei curioso se é algo que foi implementado numa versão do VSCode posterior à usada na gravação da aula (eu estou usando a V 1.82.2), alguma configuração ou se eu fiz algo diferente.

Segue código de User.js, caso necessário:

export default class User {
    #nome;
    #nascimento;
    constructor(nome, email, nascimento, role, ativo = true){
        this.#nome = nome;
        this.email = email;
        this.#nascimento = nascimento;
        this.role = role || "estudante";
        this.ativo = ativo;
    }
    exibirInfos(){
        console.log(`${this.#nome}, ${this.email}`);
    }
}
1 resposta

Oi Vinícius, tudo bem?

O erro de sintaxe que você está recebendo ao tentar alterar o atributo privado #nome é devido ao fato de que essa funcionalidade de atributos privados é uma adição recente ao JavaScript e ainda não possui um amplo suporte em todos os interpretadores.

No caso do VSCode, ele pode estar utilizando uma versão do ECMAScript que ainda não suporta essa funcionalidade, o que resulta no destaque de erro de sintaxe.

No entanto, isso não significa que você tenha feito algo errado. Na verdade, é uma vantagem que o VSCode esteja apontando esse erro, pois mostra que você está utilizando uma funcionalidade mais moderna do JavaScript.

É importante ressaltar que, mesmo que o VSCode aponte o erro, o código continuará funcionando corretamente em interpretadores que suportam atributos privados.

Portanto, não se preocupe com o destaque de erro no VSCode. Se o código está funcionando corretamente em outros interpretadores, como o Node.js, por exemplo, você pode prosseguir sem problemas.

Um abraço e bons estudos.