Es com煤n escribir funciones en donde los tipos de entrada est谩n asociados a los de salida, o en donde dos tipos de entrada est谩n relacionados de alguna forma. Consideremos por un momento una funci贸n que retorna el primer elemento de un arreglo.
function primerElementoDeUnArreglo(arreglo: any[]) {
return arreglo[0];
}
La funci贸n anterior realiza el trabajo necesario, desafortunadamente para hacer esta funci贸n operar con cualquier tipo de arreglo, se hace necesario que el tipo impl铆cito sea any
, y ser铆a mucho mejor que pudi茅ramos utilizar el tipo del arreglo que estamos enviando a la funci贸n.
Para el prop贸sito anterior existen los generics (gen茅ricos) que son utilizados para describir la correspondencia entre dos valores. Para hacer esto utilizamos el par谩metro de tipo Type
en la firma de la funci贸n:
function obtenerPrimerElementoDeArreglo<Type>(arreglo: Type[]): Type {
return arreglo[0];
}
const primerNumero = obtenerPrimerElementoDeArreglo([1, 2, 3, 4]);
console.log("El primer numero es " + primerNumero);
const primeraLetra = obtenerPrimerElementoDeArreglo(["a", "b", "c", "d"]);
console.log("La primera letra es " + primeraLetra);
Salida…
El primer numero es 1
La primera letra es a