0Pricing
TypeScript Academy · Lección

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!

Genéricos — ilustración 1

¿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!

Genéricos — ilustración 10

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.

Todas las lecciones de este curso

  1. Genéricos
  2. Alias de tipos e interfaces
  3. Tipos utilitarios
  4. Protectores de tipos
← Volver a TypeScript Academy