Estoy tratando de descubrir cómo refactorizar los tipos de una función. Al leer los documentos, no pude encontrar mucho sobre cómo agregar tipos a componentes no funcionales en mi ejemplo a continuación.
Tenga en cuenta que verá este código repetido dos veces url: string, options?: any , lo que me lleva a creer que podría refactorizarse mejor.
La getData (alias) declara el tipo así: (url: string, options?: any) => Promise<void>;
Y la función getAllData declara el tipo así: (url: string, options?: any): Promise<void>
¿Alguien sabe cómo refactorizar mejor estos tipos? El código completo de mi gancho de reacción personalizado se encuentra a continuación para obtener más contexto:
interface GetDataArgs { url: string; options?: any; } export const useFetch = (): { data: any; getData: (url: string, options?: any) => Promise<void>; fetchError: boolean; setData: Dispatch<any>; } => { const [data, setData] = useState<any>(null); const [fetchError, setFetchError] = useState<boolean>(false); const getAllData = async (url: string, options?: any): Promise<void> => { try { // loading? const res = await fetch(url, options); const data = await res.json(); setData(data); } catch (e) { setFetchError(true); console.error(e); } }; return { data, getData: getAllData, fetchError, setData }; };Si ve alguna otra mejora, no dude en sugerir cualquier cosa. Gracias
haces una expresión de tipo de función así:
type GetDataArgs = (url: string, options?: any) => Promise<void>