3
respostas

Atributos privados com #

Vi em outro curso a possibilidade de fazer atributos privados no JS através do # da seguinte forma:

class Conta {
    #titular;
    #conta;

    constructor(titular, conta) {

        this.#titular = titular;
        this.#conta = conta;
        this.saldo = 0.0;
    }

}

Agora fiquei na dúvida; esse curso está desatualizado ou isso não se define como atributo privado?

3 respostas

Em JS de forma pura não temos atributos de fato privados, isso é uma convenção da comunidade, está correto o padrão.

Já com Typescript fazemos

class Conta {
    constructor(
        private _titular: string,
        private _conta: number
    ) {}
}

Até onde entendi isso é algo bem recente, estava na fase 3 da proposta, não sei se agora já foi implementada de fato.

https://cursos.alura.com.br/forum/topico-atributos-privados-149669