0Pricing
TypeScript Academy · Lección

Tipos mapeados: transformación de tipos de objetos

Recorra las claves para crear nuevas estructuras de tipos.

Tipos mapeados: transformación de tipos de objetos es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 4 lecciones en total.

Bienvenida

Los tipos mapeados iteran sobre las claves de un tipo para crear tipos nuevos con propiedades transformadas. Son la base de `Partial`, `Readonly`, `Record` y muchas otras utilidades.

Sintaxis básica de los tipos mapeados

Use `[K in keyof T]` para iterar sobre todas las claves de `T` y generar un tipo nuevo.
type Copy<T> = { [K in keyof T]: T[K] };
type UserCopy = Copy<User>; // same as User

Cómo hacer opcionales todas las propiedades

Así se implementa `Partial`: añada `?` a cada propiedad.
type Partial<T> = { [K in keyof T]?: T[K] };
type PartialUser = Partial<User>;

Cómo hacer de solo lectura todas las propiedades

Añada `readonly` a cada propiedad del tipo mapeado.
type Readonly<T> = { readonly [K in keyof T]: T[K] };
type FrozenUser = Readonly<User>;

Transformación de tipos de valores

Cambie el tipo de valor de cada propiedad manteniendo las claves.
type Stringify<T> = { [K in keyof T]: string };
type StringUser = Stringify<User>; // all values are string

Filtrado de propiedades con never

Use un condicional en la posición del valor y filtre con `never` mediante la reasignación de claves.
type OnlyStrings<T> = {
  [K in keyof T as T[K] extends string ? K : never]: T[K]
};

Record<K, V>

`Record` crea un tipo de objeto con claves y tipos de valores específicos.
type Record<K extends string | number | symbol, V> = { [P in K]: V };
const roles: Record<'admin' | 'user', boolean> = { admin: true, user: false };

Los tipos mapeados conservan la opcionalidad

De forma predeterminada, los tipos mapeados conservan los modificadores `optional` y `readonly` del tipo de origen.
interface User { id: number; name?: string; }
type Copy<T> = { [K in keyof T]: T[K] };
type C = Copy<User>; // id: number; name?: string (preserved)

Reasignación de claves con as

Reasigne las claves a nombres nuevos usando `as` en el tipo mapeado.
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};

Iteración sobre una unión

Mapee sobre un tipo unión en lugar de sobre `keyof T` para crear tipos de objeto a partir de uniones.
type Flags = { [K in 'option1' | 'option2' | 'option3']: boolean };

Combinación de tipos mapeados y condicionales

Los tipos mapeados y los tipos condicionales se combinan de forma natural para producir transformaciones sofisticadas.
type NullableValues<T> = { [K in keyof T]: T[K] | null };

Comprobación rápida

¿Qué produce `{ [K in keyof T]?: T[K] }`?

Recapitulación

Los tipos mapeados iteran sobre las claves para crear tipos nuevos. Pueden añadir o eliminar `readonly` y `?`, transformar tipos de valores, filtrar claves con `never` y reasignar claves con `as`. Sustentan todas las utilidades de tipos integradas de TypeScript.

Preguntas frecuentes

¿La lección «Tipos mapeados: transformación de tipos de objetos» es gratis?

Sí — el texto completo de «Tipos mapeados: transformación de tipos de objetos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Tipos mapeados: transformación de tipos de objetos»?

Recorra las claves para crear nuevas estructuras de tipos. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar TypeScript Academy?

No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Tipos mapeados: transformación de tipos de objetos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?

Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Tipos mapeados: transformación de tipos de objetos
  2. Modificadores en tipos mapeados: readonly y ?
  3. Tipos de literales de plantilla: patrones de texto
  4. Reasignación de claves con as en tipos mapeados
← Volver a TypeScript Academy