Me quedo atascado con los genéricos. ¿Cómo puedo usar correctamente los genéricos en mi caso?
export interface Location { id: number; address: { houseNumber: string; }; } export const getEuropeLocations = async ( apiKey: string ) => { let response = await axios.get<Location>({ method: "get", url: `${apiBaseUrl}europe/`, headers: { Authorization: `Bearer ${apiKey}`, }, }); return response.data; };tiene un error con los tipos: "{"mensaje": "Argumento de tipo '{método: cadena; URL: cadena; encabezados: { Autorización: cadena; }; }' no se puede asignar a un parámetro de tipo 'cadena'.",
}"
Axios tiene tipos para esto. Le permite especificar un tipo genérico para las funciones axios para que result.data tenga ese tipo genérico.
Por ejemplo, puedes hacer esto:
import axios from "axios"; export const getEuropeLocations = async ( apiKey: string ) => { let response = await axios.get<Location>(`${apiBaseUrl}europe/`, { headers: { Authorization: `Bearer ${apiKey}`, }, }); return response.data; };Si desea que toda la función sea genérica, puede hacer esto:
export const getEuropeLocations = async <T>( apiKey: string ) => { let response = await axios.get<T>(`${apiBaseUrl}europe/`, { headers: { Authorization: `Bearer ${apiKey}`, }, }); return response.data; };