0Pricing
TypeScript Academy · Aula

Tipos Literais de Texto e Números

Restrinja os valores a textos e números exatos usando tipos literais.

Tipos Literais de Texto e Números é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

O que é um tipo literal?

A maioria dos tipos descreve um conjunto de valores. string significa qualquer cadeia de caracteres, e number significa qualquer número. Um tipo literal restringe isso a um único valor exato.

O tipo 'north' permite apenas a cadeia de caracteres 'north' — nada mais. Os tipos literais permitem modelar conjuntos precisos e finitos de valores permitidos diretamente no sistema de tipos.

let dir: 'north' = 'north';
console.log(dir);
// dir = 'south'; // Error: not assignable to type 'north'

Uniões de literais de cadeia de caracteres

Um único literal não é muito útil por si só. Combine vários com | para formar uma união de literais. Essa é a maneira idiomática de modelar um conjunto fixo de opções.

Direction abaixo só pode ser uma de quatro cadeias de caracteres exatas.

type Direction = 'north' | 'south' | 'east' | 'west';

let heading: Direction = 'east';
console.log('Heading:', heading);

heading = 'west';
console.log('Now:', heading);

Rejeitando valores inválidos

O poder das uniões de literais está no fato de o compilador rejeitar qualquer coisa fora do conjunto permitido. Erros de digitação e opções inválidas se tornam erros de compilação, em vez de erros em tempo de execução.

type Direction = 'north' | 'south' | 'east' | 'west';

let heading: Direction = 'north';
console.log(heading);
// heading = 'up'; // Error: '"up"' is not assignable to 'Direction'

Literais como parâmetros de funções

Use uniões de literais para parâmetros de funções que aceitam apenas valores específicos. Quem chama a função recebe sugestões de preenchimento automático e é impedido de passar algo inválido.

type Direction = 'north' | 'south' | 'east' | 'west';

function move(dir: Direction): string {
  return 'Moving ' + dir;
}

console.log(move('south'));
// console.log(move('left')); // Error

Tipos literais numéricos

Os tipos literais não servem apenas para cadeias de caracteres. Você também pode usar números exatos. Um exemplo clássico é um dado de seis faces, cujo valor deve ser um dos números de 1 a 6.

type Dice = 1 | 2 | 3 | 4 | 5 | 6;

function roll(): Dice {
  return (Math.floor(Math.random() * 6) + 1) as Dice;
}

console.log('Rolled:', roll());

Literais numéricos em parâmetros

As uniões de literais numéricos restringem as entradas a um conjunto exato de números — perfeitas para níveis de qualidade, códigos semelhantes aos HTTP ou tamanhos de grade.

type Quality = 1 | 2 | 3;

function setQuality(level: Quality): void {
  console.log('Quality set to', level);
}

setQuality(2);
// setQuality(5); // Error: 5 is not 1 | 2 | 3

Misturando literais de cadeia de caracteres e numéricos

Uma união pode combinar diferentes tipos de literais. Isso é útil para APIs que aceitam uma predefinição nomeada ou um valor bruto.

type Size = 'small' | 'large' | 0 | 100;

function resize(s: Size): void {
  console.log('Resizing to', s);
}

resize('small');
resize(100);

Tipos literais booleanos

Até os booleanos têm tipos literais: true e false são tipos e também valores. O tipo completo boolean é, na verdade, apenas true | false.

type AlwaysOn = true;

let enabled: AlwaysOn = true;
console.log('Enabled:', enabled);
// enabled = false; // Error: false not assignable to true

Literais aprimoram a documentação

Uma união de literais também funciona como documentação. Qualquer pessoa que leia type Status = 'idle' | 'loading' | 'done' sabe imediatamente todos os estados possíveis — sem precisar adivinhar e sem strings mágicas espalhadas pelo código.

type Status = 'idle' | 'loading' | 'done';

function render(s: Status): string {
  return 'State is: ' + s;
}

console.log(render('loading'));

Combinando literais com outros tipos

Você pode misturar tipos literais com tipos mais abrangentes em uma união. Um padrão comum é 'auto' | number, que significa a palavra-chave especial 'auto' ou qualquer número.

type Width = 'auto' | number;

function setWidth(w: Width): void {
  console.log('Width:', w);
}

setWidth('auto');
setWidth(320);

Literais como constantes nomeadas

Os tipos literais combinam muito bem com constantes nomeadas. Defina o tipo uma vez, reutilize-o em todos os lugares e refatore com segurança. O compilador mantém todos os usos consistentes.

type Theme = 'light' | 'dark';

const DEFAULT_THEME: Theme = 'dark';

function applyTheme(t: Theme): void {
  console.log('Applying', t, 'theme');
}

applyTheme(DEFAULT_THEME);

Verificação rápida

Teste sua compreensão dos tipos literais.

Recapitulação: tipos literais

Você aprendeu que:

  • Tipos literais representam um único valor exato, por exemplo, 'north' ou 6.
  • Combinar literais com | cria uma união finita de valores permitidos.
  • Eles funcionam com cadeias de caracteres, números e booleanos, e podem ser combinados com tipos mais abrangentes, como 'auto' | number.
  • Quando usados como parâmetros de funções, oferecem preenchimento automático e rejeitam entradas inválidas em tempo de compilação.

A seguir, exploraremos como o TypeScript decide entre tipos literais e tipos ampliados.

type Direction = 'north' | 'south' | 'east' | 'west';
type Dice = 1 | 2 | 3 | 4 | 5 | 6;

function describe(d: Direction, n: Dice): string {
  return 'Go ' + d + ' ' + n + ' steps';
}

console.log(describe('north', 3));

Perguntas Frequentes

A aula “Tipos Literais de Texto e Números” é grátis?

Sim — o texto completo de “Tipos Literais de Texto e Números” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Tipos Literais de Texto e Números”?

Restrinja os valores a textos e números exatos usando tipos literais. Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Tipos Literais de Texto e Números”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Tipos Literais de Texto e Números
  2. Literais Booleanos e Inferência de Literais
  3. Asserções const com as const
  4. Combinando Literais em Uniões
← Voltar para TypeScript Academy