JavaScript · Avançado · Inglês · Técnico
Symbol
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'));
// falseExemplos
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