TypeScript · Avançado · Inglês · Técnico
unique symbol
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]; // numberExemplos
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.