ExpertiDict

TypeScript · Intermediário · Português · Técnico

campo privado com cerquilha

/ˈkɐ̃pu pɾiˈvadu kõ seɾˈkiʎɐ/substantivo masculino

Campo declarado com # no nome, como #saldo, privado de verdade em runtime pelo padrão do JavaScript, e que o TypeScript também confere em tempo de compilação.

Onde usar

Preferido quando a privacidade precisa ser real, em bibliotecas, por exemplo. Diferente do private do TypeScript, o campo # não aparece em Object.keys e não é lido com cast ou colchetes.

Em código

class Cofre {
  #senha = 'abc';
  private pin = 1234;
  ok(s: string) { return s === this.#senha; }
}
const c = new Cofre();
c['pin'];    // compila, é só checagem do TS
// c.#senha; // erro: campo privado de verdade

Exemplos

Troquei o private pelo campo com cerquilha para o dado ficar protegido de verdade.

O campo com cerquilha não aparece nem no console, só dentro da classe.

Cuidado

Não é o mesmo que private: o # tem sintaxe própria e funciona também em JavaScript puro, enquanto o private do TypeScript some na compilação.

Sinônimos

private field, campo #privado

Antônimos

private do TypeScript

Veja também

Todos os termos de TypeScript