Menu
Coddy logo textTech

Tipos literales

Parte de la sección Introducción a TypeScript del Journey de JavaScript de Coddy — lección 33 de 73.

Los tipos literales te permiten restringir una variable a valores exactos y específicos en lugar de categorías amplias. En lugar de aceptar cualquier cadena, puedes limitarla a solo "left", "right", "up" o "down".

Un tipo literal utiliza el valor exacto como el propio tipo.

Puedes crear tipos literales para cadenas, números o booleanos:

let direction: "left" = "left";  // Solo se permite "left"
let count: 42 = 42;              // Solo se permite el número 42
let isReady: true = true;        // Solo se permite true

Los tipos literales se vuelven potentes cuando se combinan con tipos de unión, creando un conjunto controlado de valores permitidos. Esto es perfecto para escenarios como direcciones, códigos de estado o opciones de configuración:

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"; // ¡Error!

Este enfoque le brinda la flexibilidad de múltiples opciones mientras mantiene una seguridad de tipos estricta. TypeScript detectará errores tipográficos y valores no válidos en tiempo de compilación, lo que hará que su código sea más confiable que el uso de tipos de cadena generales.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Crea un alias de tipo llamado Direction para los tipos literales "left" | "right" | "up" | "down".

Crea un alias de tipo llamado GameState para los tipos literales "menu" | "playing" | "paused" | "gameover".

Crea un alias de tipo llamado Difficulty para los tipos literales "easy" | "medium" | "hard".

Ahora declara las siguientes variables utilizando tus alias de tipo:

  • Declara una variable llamada playerDirection de tipo Direction y asígnale el valor "up"
  • Declara una variable llamada currentState de tipo GameState y asígnale el valor "playing"
  • Declara una variable llamada selectedDifficulty de tipo Difficulty y asígnale el valor "medium"

Crea una función llamada movePlayer que acepte un parámetro llamado direction de tipo Direction y devuelva un string. La función debe devolver un mensaje con el formato "Moving [direction]".

Crea otra función llamada updateGameState que acepte un parámetro llamado state de tipo GameState y devuelva un string. La función debe devolver un mensaje con el formato "Game state: [state]".

Llama a tus funciones con las variables que creaste e imprime los resultados:

  • Llama a movePlayer con playerDirection e imprime el resultado
  • Llama a updateGameState con currentState e imprime el resultado
  • Imprime el valor de selectedDifficulty

Imprime cada resultado en una línea separada en el orden especificado anteriormente.

Hoja de referencia

Los tipos literales restringen las variables a valores exactos y específicos en lugar de categorías amplias:

let direction: "left" = "left";  // Solo se permite "left"
let count: 42 = 42;              // Solo se permite el número 42
let isReady: true = true;        // Solo se permite true

Combine los tipos literales con tipos de unión para crear 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

Esto proporciona seguridad de tipos al detectar errores tipográficos y valores no válidos en tiempo de compilación, manteniendo al mismo tiempo la flexibilidad con múltiples opciones.

Pruébalo tú mismo

// TODO: Escribe tu código aquí
// Crea alias de tipos para Direction, GameState y Difficulty
// Declara variables usando tus alias de tipos
// Crea las funciones movePlayer y updateGameState
// Llama a las funciones e imprime los resultados
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Introducción a TypeScript