0Pricing
TypeScript Academy · Lección

Interfaces y alias de tipos genéricos

Aplique genéricos a interfaces y tipos personalizados.

Interfaces y alias de tipos genéricos es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 2 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 genéricos no se limitan a las funciones. Las interfaces y los alias de tipo también aceptan parámetros de tipo, lo que permite reutilizarlos con muchos tipos.

Sintaxis de las interfaces genéricas

Añada `` después del nombre de la interfaz para hacerla genérica. Utilice T en los tipos de propiedades y en las firmas de métodos.
interface Box<T> {
  value: T;
  unwrap(): T;
}
const box: Box<number> = { value: 42, unwrap() { return this.value; } };

Alias de tipo genérico

Los alias de tipo utilizan la misma sintaxis ``.
type Maybe<T> = T | null | undefined;
type Pair<A, B> = { first: A; second: B };
const p: Pair<string, number> = { first: 'Alice', second: 30 };

Interfaz de repositorio genérica

Un caso de uso clásico: una interfaz de repositorio genérica que funciona con cualquier tipo de entidad.
interface Repository<T> {
  findById(id: number): T | null;
  findAll(): T[];
  save(item: T): void;
  delete(id: number): void;
}

Implementar una interfaz genérica

Proporcione el argumento de tipo al implementar una interfaz genérica.
class UserRepo implements Repository<User> {
  findById(id: number): User | null { return null; }
  findAll(): User[] { return []; }
  save(user: User): void {}
  delete(id: number): void {}
}

Extender interfaces genéricas

Las interfaces genéricas pueden extender otras interfaces genéricas.
interface Named<T> { name: T; }
interface NamedAndAged<T> extends Named<T> { age: number; }

Tipo de respuesta genérico

Un tipo de respuesta genérico de API que envuelve cualquier carga de datos.
type ApiResponse<T> = {
  status: 'success' | 'error';
  data: T;
  timestamp: number;
};
const res: ApiResponse<User[]> = { status: 'success', data: [], timestamp: Date.now() };

Varios parámetros de tipo en interfaces

Las interfaces admiten varios parámetros de tipo.
interface KeyValue<K, V> {
  key: K;
  value: V;
}
const kv: KeyValue<string, number> = { key: 'age', value: 30 };

Método genérico en una interfaz no genérica

Una interfaz puede tener métodos genéricos sin que toda la interfaz sea genérica.
interface Transformer {
  transform<T, U>(input: T, fn: (val: T) => U): U;
}

Tipos genéricos recursivos

Los tipos genéricos pueden referenciarse a sí mismos para representar estructuras de árbol o listas enlazadas.
interface TreeNode<T> {
  value: T;
  children: TreeNode<T>[];
}

Alias de tipo frente a interfaz para genéricos

Ambos admiten genéricos con la misma eficacia. Prefiera interface para contratos que implementan clases. Prefiera type para genéricos que implican uniones, como Maybe.

Comprobación rápida

¿Qué proporciona al implementar `interface Repository`?

Resumen

Las interfaces genéricas y los alias de tipo utilizan para trabajar con cualquier tipo. Permiten crear contratos reutilizables para repositorios, envoltorios de respuestas y estructuras de datos recursivas. Impleméntelos proporcionando el argumento de tipo concreto.

Preguntas frecuentes

¿La lección «Interfaces y alias de tipos genéricos» es gratis?

Sí — el texto completo de «Interfaces y alias de tipos genéricos» 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 «Interfaces y alias de tipos genéricos»?

Aplique genéricos a interfaces y tipos personalizados. 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 2 de 4.

¿Cuánto tiempo toma la lección «Interfaces y alias de tipos genéricos»?

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. Funciones genéricas: parámetros de tipo
  2. Interfaces y alias de tipos genéricos
  3. Restricciones genéricas con extends
  4. Parámetros de tipo predeterminados
← Volver a TypeScript Academy