symbol / bigint symbol e bigint

Última atualização: 2026-10-22

symbol / bigint symbol e bigint

symbol cria valores globalmente únicos, sem repetição — bom para chaves de objetos e tokens constantes. bigint armazena inteiros de precisão arbitrária além da faixa segura de number.

GrupoTipos Básicos
TipoTipo
Modo strictNão necessário

ℹ️ Info O editor transpila TypeScript para JavaScript e o executa (sem verificação de tipos); veja a Saída de cada exemplo para o resultado da verificação.

📝 Sintaxe

const key = Symbol("id");          // valor único; "id" é só uma descrição
const big: bigint = 9007199254740993n; // valor exato além do intervalo seguro

⚙️ Parâmetros

Symbol(desc)O argumento é uma descrição (legível via .description) e não afeta a unicidade
123nLiterais bigint terminam com n; BigInt(123) também converte

Retorno:Nenhum valor de retorno — symbol/bigint são anotações de tipo básicas; Symbol() e BigInt() são funções de runtime.

▶ Exemplo

Edite o código abaixo e clique em Testar para ver o resultado transpilado:

Saída:

false order
9007199254740994

(Saída de execução após a transpilação; dois Symbols com a mesma descrição não são iguais — é isso que único significa)

💡 Observações

ℹ️ Info Symbol("a") !== Symbol("a") — descrições são apenas rótulos; use Symbol.for("a") para um symbol compartilhado e registrado.
⚠️ Atenção bigint não pode ser misturado diretamente com number (9007199254740993n + 1 dá erro) e o JSON.stringify não consegue serializá-lo.
💡 Dica Chaves symbol são ignoradas por Object.keys e for...in — perfeitas para metadados internos.
Mais casos em breve.

📚 Tutoriais relacionados

❓ Perguntas frequentes

P Quando preciso de bigint?
R Quando inteiros excedem 2^53 - 1 ou devem permanecer exatos: IDs snowflake, cálculos criptográficos, totais grandes em centavos. Dentro da faixa, number simples basta.
P Para que symbol é realmente usado?
R Três usos típicos: chaves internas de objetos sem colisão, constantes únicas em nível de módulo e protocolos da linguagem via well-known symbols como Symbol.iterator.
P Duas chamadas Symbol("a") são iguais?
R Não — cada chamada Symbol() cria um valor novo. Para compartilhar entre módulos, use Symbol.for("a"), que retorna a mesma instância para a mesma chave.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%