Menu
Coddy logo textTech

Tipos Literais

Parte da seção Introdução ao TypeScript do Journey de JavaScript da Coddy — lição 33 de 73.

Tipos literais permitem restringir uma variável a valores exatos e específicos, em vez de categorias amplas. Em vez de aceitar qualquer string, você pode limitá-la a apenas "left", "right", "up", ou "down".

Um tipo literal usa o valor exato como o próprio tipo.

Você pode criar tipos literais para strings, números ou booleanos:

let direction: "left" = "left";  // Apenas "left" é permitido
let count: 42 = 42;              // Apenas o número 42 é permitido
let isReady: true = true;        // Apenas true é permitido

Tipos literais tornam-se poderosos quando combinados com tipos de união, criando um conjunto controlado de valores permitidos. Isso é perfeito para cenários como direções, códigos de status ou opções de configuração:

type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";

let playerMove: Direction = "up";    // Válido
let orderStatus: Status = "pending"; // Válido
// let invalid: Direction = "diagonal"; // Erro!

Esta abordagem oferece a flexibilidade de múltiplas opções, mantendo uma segurança de tipos rigorosa. O TypeScript capturará erros de digitação e valores inválidos em tempo de compilação, tornando seu código mais confiável do que o uso de tipos de string genéricos.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

challenge icon

Desafio

Fácil

Crie um type alias chamado Direction para os tipos literais "left" | "right" | "up" | "down".

Crie um type alias chamado GameState para os tipos literais "menu" | "playing" | "paused" | "gameover".

Crie um type alias chamado Difficulty para os tipos literais "easy" | "medium" | "hard".

Agora declare as seguintes variáveis usando seus type aliases:

  • Declare uma variável chamada playerDirection do tipo Direction e atribua a ela o valor "up"
  • Declare uma variável chamada currentState do tipo GameState e atribua a ela o valor "playing"
  • Declare uma variável chamada selectedDifficulty do tipo Difficulty e atribua a ela o valor "medium"

Crie uma função chamada movePlayer que aceite um parâmetro chamado direction do tipo Direction e retorne uma string. A função deve retornar uma mensagem no formato "Moving [direction]".

Crie outra função chamada updateGameState que aceite um parâmetro chamado state do tipo GameState e retorne uma string. A função deve retornar uma mensagem no formato "Game state: [state]".

Chame suas funções com as variáveis que você criou e imprima os resultados:

  • Chame movePlayer com playerDirection e imprima o resultado
  • Chame updateGameState com currentState e imprima o resultado
  • Imprima o valor de selectedDifficulty

Imprima cada resultado em uma linha separada na ordem especificada acima.

Folha de consulta

Tipos literais restringem variáveis a valores exatos e específicos, em vez de categorias amplas:

let direction: "left" = "left";  // Apenas "left" é permitido
let count: 42 = 42;              // Apenas o número 42 é permitido
let isReady: true = true;        // Apenas true é permitido

Combine tipos literais com tipos de união para criar conjuntos controlados de valores permitidos:

type Direction = "left" | "right" | "up" | "down";
type Status = "pending" | "approved" | "rejected";

let playerMove: Direction = "up";    // Válido
let orderStatus: Status = "pending"; // Válido

Isso fornece segurança de tipos ao capturar erros de digitação e valores inválidos em tempo de compilação, mantendo a flexibilidade com múltiplas opções.

Experimente você mesmo

// TODO: Escreva seu código aqui
// Crie aliases de tipo para Direction, GameState e Difficulty
// Declare variáveis usando seus aliases de tipo
// Crie as funções movePlayer e updateGameState
// Chame as funções e imprima os resultados
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Introdução ao TypeScript