I want to know what is the type of this args that is being passed to my function below
const fetcher = async (...args) => {
~_ 0 const res = await fetch(...args);
1
~ 2 return res.json();
3 };
This is my fetcher function for SWR, and this is the error I'm getting
[tsserver 2556] [E] Expected 1-2 arguments, but got 0 or more.
SWR hook
const { error, data } = useSWR(`/api/albums/list/${user.id}`, fetcher)
This is TypeScript signature of
fetch
function:If you use functions rest parameters
...args
, yourfetcher
function can be called with zero parameters like this and tsc will not report errors.Or, many parameters(like four parameters):
Then, you use spread syntax to call the fetch API. The parameter of spread does not satisfy the function signature of fetch(the parameter can NOT be zero or more than two), so tsc reports an error.
So you'd better modify it like this:
package version:
"typescript": "^4.1.3"