TypeScript Academy · Lección

Partial y Required: alternancia de opcionalidad

Haga que todas las propiedades sean opcionales u obligatorias de una vez.

Lección 1 de 413 pasos

Partial y Required: alternancia de opcionalidad 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

Partial convierte todas las propiedades en opcionales. Required convierte todas las propiedades en obligatorias. Son los tipos de utilidad más utilizados para manipular datos de forma flexible.

Partial<T>

Partial convierte en opcional cada propiedad de T. Resulta útil para operaciones de actualización o patch en las que no se dispone de todos los campos.
interface User { id: number; name: string; email: string; }
type PartialUser = Partial<User>;
// { id?: number; name?: string; email?: string; }

Partial en funciones de actualización

Use Partial al implementar funciones de actualización o combinación que acepten únicamente los campos modificados.
function updateUser(id: number, changes: Partial<User>): User {
  const existing = findUser(id)!;
  return { ...existing, ...changes };
}

Required<T>

Required elimina todos los modificadores de opcionalidad y convierte cada propiedad en obligatoria.
type RequiredUser = Required<User>;
// All properties are now required — including those that were optional

Required para validar configuraciones

Use Required después de combinar los valores predeterminados para garantizar que todos los valores de configuración estén presentes.
interface Config { host?: string; port?: number; }
const defaults: Required<Config> = { host: 'localhost', port: 3000 };
function createConfig(opts: Config): Required<Config> {
  return { ...defaults, ...opts };
}

Cómo se implementa Partial

Partial usa un tipo mapeado con el modificador +?.
type Partial<T> = { [K in keyof T]?: T[K] };
// Equivalent to: { [K in keyof T]+?: T[K] }

Cómo se implementa Required

Required usa un tipo mapeado con el modificador -?.
type Required<T> = { [K in keyof T]-?: T[K] };

Partial profundo

El Partial integrado es superficial. Para objetos anidados, necesita un DeepPartial recursivo.
type DeepPartial<T> = {
  [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K]
};

Combinación de Partial y Required

Haga que algunos campos sean obligatorios y mantenga otros como opcionales mediante una intersección.
// id required, everything else optional
type UpsertUser = Required<Pick<User, 'id'>> & Partial<Omit<User, 'id'>>;

Partial frente a propiedades opcionales en una interfaz

Declarar como opcionales todas las propiedades de una interfaz equivale a aplicar Partial, pero solo para ese tipo específico. Partial se puede reutilizar con cualquier tipo.

Inferencia de tipos con Partial

TypeScript estrecha correctamente las propiedades de Partial; al acceder a ellas, puede obtener T[K] | undefined.
function show(u: Partial<User>) {
  if (u.name !== undefined) {
    console.log(u.name.toUpperCase()); // safe
  }
}

Comprobación rápida

¿Qué tipo de utilidad hace que TODAS las propiedades de una interfaz sean obligatorias, incluidas las que antes eran opcionales?

Resumen

Partial convierte todas las propiedades en opcionales, lo que resulta útil para patches y actualizaciones. Required convierte todas las propiedades en obligatorias, lo que resulta útil para validar datos después de combinarlos. Ambos son superficiales; use versiones recursivas para tipos anidados.
Gratis para empezar

Aprende TypeScript con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
101
Lecciones
352

Preguntas frecuentes

¿La lección «Partial y Required: alternancia de opcionalidad» es gratis?

Sí — el texto completo de «Partial y Required: alternancia de opcionalidad» 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 «Partial y Required: alternancia de opcionalidad»?

Haga que todas las propiedades sean opcionales u obligatorias de una vez. 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 «Partial y Required: alternancia de opcionalidad»?

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. Partial y Required: alternancia de opcionalidad
  2. Pick y Omit: selección de propiedades
  3. Record: asignación de claves a tipos de valores
  4. Readonly, Exclude, Extract y NonNullable
← Volver a TypeScript Academy