0Pricing
TypeScript Academy · Lección

Extensión y combinación de interfaces

Extienda interfaces y comprenda la combinación de declaraciones.

Extensión y combinación de interfaces es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 3 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

Las interfaces pueden extender otras interfaces para basarse en estructuras existentes, y TypeScript combina automáticamente varias declaraciones de una misma interfaz.

Extender una interfaz

Use la palabra clave `extends` para crear una interfaz nueva que incluya todas las propiedades de la interfaz principal.
interface Animal { name: string; }
interface Dog extends Animal {
  breed: string;
}
const rex: Dog = { name: 'Rex', breed: 'Labrador' };

Extender varias interfaces

Una interfaz puede extender varias interfaces a la vez y combinar todas sus propiedades.
interface Flyable { fly(): void; }
interface Swimmable { swim(): void; }
interface Duck extends Flyable, Swimmable {
  quack(): void;
}

Anular propiedades al extender

Una interfaz extendida puede anular una propiedad de la interfaz principal, pero el nuevo tipo debe poder asignarse al tipo principal.
interface Base { value: string | number; }
interface Derived extends Base { value: string; } // OK — string is narrower
// interface Bad extends Base { value: boolean; } // Error

Fusión de declaraciones

Cuando declara dos interfaces con el mismo nombre, TypeScript las combina en una sola interfaz con todas sus propiedades.
interface Window { title: string; }
interface Window { location: Location; }
// Merged: Window has both title and location

Ampliar tipos de bibliotecas

La fusión de declaraciones se utiliza para ampliar tipos de terceros. Por ejemplo, puede añadir propiedades a la interfaz Request de Express.
// express.d.ts
declare namespace Express {
  interface Request {
    user?: User;
  }
}

Una interfaz que extiende un alias de tipo

Una interfaz puede extender un alias de tipo siempre que el alias sea un tipo de objeto.
type Named = { name: string };
interface User extends Named { email: string; }

Cadenas de extensión anidadas

Las cadenas de extensión pueden tener varios niveles de profundidad.
interface A { a: number; }
interface B extends A { b: number; }
interface C extends B { c: number; }
const obj: C = { a: 1, b: 2, c: 3 };

extends frente a implements

`extends` se utiliza para la herencia entre interfaces o entre clases. `implements` se utiliza para que una clase cumpla el contrato de una interfaz.
interface Serializable { serialize(): string; }
class Model implements Serializable {
  serialize() { return JSON.stringify(this); }
}

La fusión se aplica a todos los usos

Cuando las interfaces se combinan, todo el código existente que utiliza esa interfaz obtiene automáticamente las nuevas propiedades; por eso funciona la ampliación de bibliotecas.

Fusión frente a extensión: cuándo usar cada una

Use `extends` para crear una interfaz nueva basada en otra existente. Use la fusión (el mismo nombre) para añadir elementos a una interfaz desde un archivo independiente, como en una ampliación.

Comprobación rápida

¿Qué característica de TypeScript permite añadir propiedades a una interfaz de una biblioteca de terceros?

Resumen

Las interfaces extienden otras interfaces con `extends`, combinando sus estructuras. La fusión de declaraciones combina automáticamente las interfaces con el mismo nombre. Esto permite ampliar bibliotecas sin modificar código de terceros.

Preguntas frecuentes

¿La lección «Extensión y combinación de interfaces» es gratis?

Sí — el texto completo de «Extensión y combinación de interfaces» 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 «Extensión y combinación de interfaces»?

Extienda interfaces y comprenda la combinación de declaraciones. 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 3 de 4.

¿Cuánto tiempo toma la lección «Extensión y combinación de interfaces»?

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. Definición de estructuras de objetos con interfaces
  2. Alias de tipos complejos
  3. Extensión y combinación de interfaces
  4. Interface frente a Type: cuándo usar cada uno
← Volver a TypeScript Academy