ExpertiDict

JavaScript · Avançado · Inglês · Técnico

Symbol

/ˈsɪmbəl/substantivo

Tipo primitivo cujos valores são únicos e imutáveis, criados com Symbol(). Servem como chaves de propriedade sem risco de colisão e dão acesso a protocolos da linguagem.

Onde usar

Aparece em bibliotecas para guardar metadados em objetos e nos símbolos conhecidos, como Symbol.iterator. Em code review, ajuda a evitar colisão de nomes em propriedades.

Em código

const id = Symbol('id');
const u = { nome: 'Ana', [id]: 7 };
console.log(Object.keys(u)); // ['nome']
console.log(u[id]);          // 7
console.log(Symbol('a') === Symbol('a'));
// false

Exemplos

I used a Symbol as the key to avoid name collisions.

Usei um Symbol como chave para evitar colisão de nomes.

Symbol keys don't show up in Object.keys.

Chaves Symbol não aparecem em Object.keys.

Cuidado

Esperar que chaves symbol apareçam em for...in, Object.keys ou JSON.stringify; elas são ignoradas por todos.

Sinônimos

símbolo

Veja também

Todos os termos de JavaScript