2
respostas

usando #

class Codigo {
    #texto
    constructor(texto) {
        if (!this.#valida(texto)) throw new Error(`O texto ${texto} não é um código válido`);
        this.#texto = texto;
    }

    #valida(texto) {
        return /\D{3}-\D{2}-\d{2}/.test(texto);
    }

    get texto() {

        return this.#texto;
    }
}

let codigo1 = new Codigo('GWZ-JJ-12'); // válido
console.log(codigo1.texto);

// let codigo2 = new Codigo('1X1-JJ-12'); // inválido
// console.log(codigo2.texto);

vi alguns artigos sobre o uso do # na privatização de atributos e métodos, quero saber se usei da forma correta

2 respostas

Salve, Wesley!

Segundo a nova especificação Private class features, está certinho.

Mas repare que embora esteja no estágio final, essa funcionalidade faz parte do tc39

Aqui na documentação você confere quais navegadores já dão suporte.

** Mas repare que embora esteja no estágio final, essa funcionalidade faz parte do tc39 **

Essa parte da explicação Ficou meio vago e não entendi seu proposito

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software