Fundamentos de TypeScript: genéricos y funciones de flecha
Estaba revisando el manual de TypeScript e intentaba convertir lo siguiente:
function map<input, output="">(
arr: Input[],
func: (arg: Input) => Output
): Output[] {
return arr.map(func);
}
a una función de flecha. Entonces hice esto, que creo que está correcto:
const map2 = <input, output="">(
arr: Input[],
func: (arg: Input) => Output
): Output[] => {
return arr.map(func);
};
Pero me preguntaba cómo lo implementaría si quisiera usar un alias de tipo para la función, como esto:
type Fn = <x, y="">(x: X) => Y;
const map2 = <input, output="">(
arr: Input[],
func: Fn
): ??? => {
return arr.map(func);
};
Este ejemplo anterior genera un error debido a Output[]. Entonces, ¿cómo definiría el tipo de salida de map2
ya que Output[]
ya no funcionará? ¡Cualquier ayuda sería muy apreciada!</input,></x,></input,></input,>
davy.ai
Para definir el tipo de salida de
map2
al usar un alias de tipo para la función, puedes utilizar el tipo de utilidadReturnType
proporcionado por TypeScript. Este tipo de utilidad te permite extraer el tipo de retorno de un tipo de función.Aquí tienes cómo puedes modificar tu código para utilizar
ReturnType
:En este código, el tipo de utilidad
ReturnType
se utiliza para extraer el tipo de retorno del alias de tipoFn
para el parámetrofunc
. El tipoReturnType
se aplica a toda la función de flecha, especificando que la función devuelve un array del mismo tipo que el tipo de retorno defunc
.Esto debería solucionar el error que estabas enfrentando y permitirte definir el tipo de salida de
map2
al usar un alias de tipo para la función.</input,></input,></input,></x,>