javascript - Error de TypeScript - Se esperaban 1-2 argumentos, pero se recibieron 0 o más. TS2556
Estaba usando esta declaración en JavaScript, pero cuando intento usarla en un proyecto de TypeScript, obtengo un error. Se queja de fetch(...args)
const fetcher = (...args) => fetch(...args).then(response => response.json());
Expected 1-2 arguments, but got 0 or more. TS2556
Respuesta #1
Esto debería ayudarte:
const fetcher = (...args: [input: RequestInfo, init?: RequestInit | undefined]) => fetch(...args).then(response => response.json());
Deberías escribir explícitamente los argumentos para fetch. Espera 1-2 argumentos.
Si quieres usar el operador rest, deberías decirle a TS que también esperas dos argumentos en tu función de orden superior
ACTUALIZACIÓN
Enfoque genérico. Si quieres obtener el tipo de los argumentos de cualquier función, solo utiliza la utilidad Parameters.
type FetchParameters = Parameters<typeof fetch>
Respuesta #2
Tomando esta respuesta del comentario de @Keith, que fue lo único que funcionó para mí:
const fetcher = (...args: Parameters<typeof fetch>) => {
fetch(...args).then(response => response.json());
}
Específicamente agregando esto Parameters<typeof fetch> como el tipo de ...args
