"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.

GrupoComposição de Tipos
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

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 | trueTrês tipos de literais primitivos funcionam como tipos: "a", 42, true
as constTrava 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.
Mais casos em breve.

📚 Tutoriais relacionados

❓ 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).
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%