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 trueLos 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.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilCrea 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
playerDirectionde tipoDirectiony asígnale el valor"up" - Declara una variable llamada
currentStatede tipoGameStatey asígnale el valor"playing" - Declara una variable llamada
selectedDifficultyde tipoDifficultyy 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
movePlayerconplayerDirectione imprime el resultado - Llama a
updateGameStateconcurrentStatee 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 trueCombine 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álidoEsto 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 resultadosEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Introducción a TypeScript
1Primeros pasos con TS
¿Qué es TypeScript?¿Por qué usar TypeScript?Tu primer código en TypeScriptProceso de compilación y erroresResumen: Introducción a TS4Trabajando con funciones
Tipado de parámetros y valores de retornoTipado de funciones de flechaEl tipo de retorno 'void'Parámetros opcionales con '?'Valores de parámetros por defectoTipado de parámetros restDefinición de tipos de funcionesRepaso: Construcción de funciones tipadas2Tipos principales
Tipos básicos: str, num, booleanEl tipo 'any': Vía de escapeEl tipo 'unknown'Trabajando con 'null' y 'undef'Inferencia de tipos en acciónAnotaciones de tipo explícitasResumen: Práctica de tipos principales5Tipos: Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de unión ('|')Trabajando con tipos de uniónTipos literalesTipos de intersección ('&')Combinando alias de tiposRepaso: Combinaciones de tipos avanzadas3Estructura de datos: Arrays y Tuplas
Arrays tipadosModificador 'readonly' para Arrays¿Qué es una Tupla?Declaración y acceso a TuplasDesestructuración de TuplasTuplas ReadonlyArrays tipados multidimensionalesOperador Spread con ArraysResumen: Arrays y Tuplas