ExpertiDict

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

unique symbol

/juˈniːk ˈsɪmbəl/substantivo

Subtipo de symbol que identifica um único símbolo específico, declarado com const. Permite usá-lo como chave de propriedade com tipo preciso.

Onde usar

Aparece em bibliotecas que usam símbolos como chaves privadas ou marcadores, para que cada símbolo seja um tipo distinto. Dois unique symbols nunca são compatíveis entre si.

Em código

const ID: unique symbol = Symbol('id');
interface Item {
  [ID]: number;
  nome: string;
}
const i: Item = { [ID]: 1, nome: 'x' };
i[ID]; // number

Exemplos

Declare it as a unique symbol to use it as a typed key.

Declare como unique symbol para usá-lo como chave tipada.

Each unique symbol is its own type, so two of them never match.

Cada unique symbol é um tipo próprio, então dois deles nunca combinam.

Cuidado

Só vale em const (ou propriedade estática readonly) declarada com Symbol(); em let, o tipo cai para o symbol genérico.

Veja também

Todos os termos de TypeScript