"a" | "b" Tipos literais
Última atualização: 2026-10-22
"a" | "b" Tipos literais
Tipos literais promovem um valor a tipo: "up", 1 e true são todos tipos. Sozinhos têm uso nichado, mas combinados em uniões fixam os valores permitidos com precisão.
| Grupo | Composição de Tipos |
|---|---|
| Tipo | Tipo |
| Modo strict | Nã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
type Size = "small" | "medium" | "large";
let size: Size = "medium";
const mode = "dark"; // const infere o tipo literal "dark"
let level = 3; // let infere o number alargado
⚙️ Parâmetros
| "a" | 42 | true | Três tipos de literais primitivos funcionam como tipos: "a", 42, true |
|---|---|
| as const | Trava membros de objetos/arrays em tipos literais — útil para constantes de configuração |
Retorno:Nenhum valor de retorno — tipos literais existem apenas na camada de tipos e desaparecem após a compilação.
▶ Exemplo
Edite o código abaixo e clique em Testar para ver o resultado transpilado:
Saída:
up x2 right x1
(Saída de execução após a transpilação; move("Up", 1) é um erro de compilação — literais devem corresponder exatamente, com distinção de maiúsculas e minúsculas)
💡 Observações
ℹ️ Info let se alarga para string; const mantém o tipo literal ("dark") — a forma mais comum de surgirem tipos literais.
💡 Dica Adicione as const a constantes de configuração: cada membro se torna um tipo literal, pronto para alimentar parâmetros com uniões de literais.
⚠️ Atenção A correspondência literal é exata e sensível a maiúsculas: "Up" não cabe em "up", e espaços extras também não.
🏷️ Composição de Tipos Relacionada
💡 Casos relacionados
Mais casos em breve.
📚 Tutoriais relacionados
Tipos de união e tipos literais no TypeScript
Lição 6: Tipos de união e tipos literais no TypeScript
❓ Perguntas frequentes
P Por que const gera um tipo literal enquanto let gera string?
R Um const nunca muda, então o TS mantém o "valor como tipo" mais preciso; um let pode receber outras strings, então se alarga para string. Estreite com anotação ou as const quando necessário.
P O que o as const faz?
R Ele assevera a forma somente leitura mais profunda: membros se tornam tipos literais e não graváveis. { method: "GET" } infere { method: string }; com as const, method é exatamente "GET".
P Uniões de literais vs enums?
R Uniões de literais não custam nada em runtime e interoperam com strings comuns; enums adicionam namespace e mapeamento reverso. Uniões de literais bastam para a maioria dos domínios de valores (veja a entrada enum).