Chuck's Academy

TypeScript Básico

Generics en TypeScript

Los generics son una de las características más poderosas de TypeScript. Permiten crear componentes que funcionen con una variedad de tipos de datos, en lugar de limitarse a un solo tipo. En este capítulo, exploraremos cómo funcionan los generics en funciones, clases e interfaces para escribir código más flexible y reutilizable.

Introducción a los Generics

Los generics permiten que una función, clase o interfaz trabaje con múltiples tipos de datos sin especificar el tipo exacto de antemano. Esto permite que el código sea más flexible y reutilizable.

Esta imagen muestra un ejemplo de GenericsEsta imagen muestra un ejemplo de Generics

Ejemplo Básico de Generics

Veamos un ejemplo simple de una función que utiliza un generic:

typescript
"Aquí definimos una función llamada identity que utiliza un parámetro genérico T. La función acepta un argumento de cualquier tipo y retorna un valor del mismo tipo. Este es el uso más simple de un generic."

Al llamar a la función, TypeScript infiere el tipo del argumento que se pasa:

typescript
"En este ejemplo, llamamos a la función identity con un número como argumento. El compilador infiere que el tipo T es number."

Generics en Funciones

Los generics son muy útiles cuando escribimos funciones que necesitan trabajar con múltiples tipos. También podemos aplicar restricciones a los generics para limitar los tipos que pueden ser utilizados.

Ejemplo con Restricciones

Podemos restringir el tipo genérico para asegurarnos de que cumpla con ciertas condiciones, utilizando la palabra clave extends.

typescript
"En este ejemplo, la función getLength acepta un tipo genérico T que debe tener una propiedad length. Esto asegura que el argumento pasado a la función tiene una propiedad length, como las cadenas de texto o los arrays."

Generics en Clases

Los generics también pueden aplicarse a clases, lo que permite que una clase trabaje con diferentes tipos de datos.

Ejemplo de Clase Genérica

typescript
"En este ejemplo, definimos una clase genérica llamada Box que acepta un tipo genérico T. La clase tiene una propiedad contents de tipo T y un método getContents que retorna el contenido de la caja."

Generics en Interfaces

Las interfaces también pueden ser genéricas, lo que permite definir estructuras de datos que funcionen con múltiples tipos.

Ejemplo de Interfaz Genérica

typescript
"En este ejemplo, definimos una interfaz genérica llamada Pair que acepta dos tipos genéricos, T y U. Luego creamos una instancia de esta interfaz con un string y un número."

Uso de Generics con Tipos Predeterminados

Es posible asignar un valor predeterminado a los parámetros genéricos, lo que significa que si no se proporciona un tipo específico, se utilizará el tipo predeterminado.

Ejemplo de Tipo Predeterminado

typescript
"En este ejemplo, la función createArray tiene un parámetro genérico T con un valor predeterminado de string. Si no se especifica un tipo, la función utiliza string como tipo predeterminado."

Conclusión

En este capítulo, hemos aprendido sobre los generics en TypeScript y cómo nos permiten escribir funciones, clases e interfaces más flexibles y reutilizables. Los generics son una poderosa herramienta para trabajar con una variedad de tipos sin tener que duplicar código.


Pregúntame lo que sea