Genéricos
Aprenda a crear componentes reutilizables mediante genéricos
Genéricos 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.
Introducción a los genéricos
Genéricos
¡Bienvenido a la próxima lección! En esta lección, aprenderá sobre los genéricos, una potente característica de TypeScript que permite crear componentes reutilizables y con seguridad de tipos. ¡Comencemos!

¿Qué son los genéricos?
¿Qué son los genéricos?
Los genéricos permiten escribir código reutilizable que funciona con cualquier tipo. Actúan como marcadores de posición para los tipos que puede especificar al usarlos.
Ejemplo: una función genérica:
Tarea: Escriba una función genérica que reciba un argumento y lo devuelva sin modificarlo.
function identity<T>(value: T): T {
return value;
}
console.log(identity<string>("Hello"));
// Output: Hello
console.log(identity<number>(42));
// Output: 42
¿Por qué usar genéricos?
¿Por qué usar genéricos?
Los genéricos le ayudan a:
- Escribir código reutilizable: Las funciones y las clases pueden trabajar con distintos tipos.
- Garantizar la seguridad de tipos: Puede exigir tipos específicos sin sacrificar la flexibilidad.
- Reducir la redundancia: Evite escribir versiones independientes de la misma función o clase para distintos tipos.
Consejo: Use genéricos para escribir código más flexible y fácil de mantener.
Funciones genéricas
Funciones genéricas
Puede usar genéricos para crear funciones flexibles. Ejemplo:
Tarea: Escriba una función genérica que combine dos objetos y devuelva el resultado.
function merge<T, U>(obj1: T, obj2: U): T & U {
return { ...obj1, ...obj2 };
}
let merged = merge({ name: "Alice" }, { age: 25 });
console.log(merged);
// Output: { name: "Alice", age: 25 }
Clases genéricas
Clases genéricas
Los genéricos se pueden usar en clases para hacerlas reutilizables con distintos tipos. Ejemplo:
class Box<T> {
private contents: T;
constructor(contents: T) {
this.contents = contents;
}
getContents(): T {
return this.contents;
}
}
let stringBox = new Box<string>("Hello");
console.log(stringBox.getContents());
// Output: Hello
let numberBox = new Box<number>(42);
console.log(numberBox.getContents());
// Output: 42
Interfaces genéricas
Interfaces genéricas
Las interfaces también pueden usar genéricos para imponer una estructura con distintos tipos. Ejemplo:
Tarea: Defina una interfaz genérica y cree un objeto que la implemente.
interface Pair<T, U> {
first: T;
second: U;
}
let coordinates: Pair<number, number> = { first: 10, second: 20 };
console.log(coordinates);
// Output: { first: 10, second: 20 }
Restricciones de los genéricos
Restricciones de los genéricos
Puede agregar restricciones a los genéricos para garantizar que funcionen solo con tipos específicos. Ejemplo:
function printLength<T extends { length: number }>(item: T): void {
console.log(`Length: ${item.length}`);
}
printLength("Hello");
// Output: Length: 5
printLength([1, 2, 3]);
// Output: Length: 3
// printLength(42);
// Error: Argument of type 'number' is not assignable to parameter of type '{ length: number }'.
Valores predeterminados de los genéricos
Valores predeterminados de los genéricos
Puede especificar tipos predeterminados para los genéricos si no se proporciona ningún tipo. Ejemplo:
Tarea: Cree una función genérica con un tipo predeterminado y pruébela con distintos tipos.
function wrap<T = string>(value: T): T[] {
return [value];
}
console.log(wrap("Hello")); // Output: ["Hello"]
console.log(wrap(42)); // Output: [42]
¡Excelente trabajo!
¡Excelente trabajo!
¡Felicidades! Ha aprendido a usar genéricos en TypeScript para crear funciones, clases e interfaces reutilizables y con seguridad de tipos. Los genéricos son una herramienta potente para escribir código flexible y escalable. En la próxima lección, exploraremos tipos avanzados, como los tipos mapeados y condicionales. ¡Sigamos programando!

Preguntas frecuentes
¿La lección «Genéricos» es gratis?
Sí — el texto completo de «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 «Genéricos»?
Aprenda a crear componentes reutilizables mediante genéricos 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 «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.