Generics
Los TypeScript Generics permiten escribir código reutilizable al trabajar con tipos de forma flexible. En lugar de definir un tipo fijo, los genéricos permiten que un tipo sea un parámetro, lo que hace que las funciones, clases e interfaces sean más dinámicas y reutilizables.
En el siguiente ejemplo
class Queue<T> {
data = [];
insert(item: T) {
this.data.unshift(item);
}
take(): T {
return this.data.pop();
}
}
let valores = [1, 2, 3, 4, 5, 6];
const queue = new Queue<number>();
valores.forEach((element) => {
queue.insert(element);
});
console.log(queue.take());
console.log(queue.take());
console.log(queue.take());
console.log(queue);