TypeScript: Resucitar Librerías con Estilo
Revive librerías abandonadas de TypeScript con nuevas prácticas de código.
Tienes una librería de TypeScript que hace tiempo nadie actualiza, el código se ha vuelto un mamotreto y mantenerlo es un dolor de cabeza.
El truco
Antes, con any:
function processData(input: any): any {
// procesar datos
return input.data.map((item: any) => item * 2);
}
Después, con mejor tipado y genéricos:
interface DataItem {
value: number;
}
function processData<T extends DataItem>(input: { data: T[] }): number[] {
return input.data.map(item => item.value * 2);
}
El truco está en dejar de usar any y aplicar tipado explícito y genéricos. Definimos una interfaz DataItem para especificar que cada elemento tiene una propiedad value de tipo number. Usamos generics para hacer la función más flexible y segura, permitiendo que procesemos arrays de objetos que extiendan DataItem.
Aunque el código legacy sea un rompecabezas, aplicar mejores prácticas de TypeScript lo convierte en una joya mucho más mantenible y sostenible.