gpt4 book ai didi

javascript - 向 SWR 发出请求时出现 typescript 问题

转载 作者:行者123 更新时间:2023-12-03 20:03:27 26 4
gpt4 key购买 nike

我想知道传递给我下面的函数的这个参数的类型是什么

const fetcher = async (...args) => {                                
~_ 0 const res = await fetch(...args);
1
~ 2 return res.json();
3 };
这是我的 SWR 提取器功能,这是我得到的错误
[tsserver 2556] [E] Expected 1-2 arguments, but got 0 or more.
SWR Hook
const { error, data } = useSWR(`/api/albums/list/${user.id}`, fetcher)

最佳答案

这是 fetch 的 TypeScript 签名功能:

declare function fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;
如果你使用函数 rest parameters ...args , 你的 fetcher可以像这样使用零参数调用函数,并且 tsc 不会报告错误。
fetcher();
或者,许多参数(如四个参数):
fetcher("localhost", {}, {}, {});
然后,您使用 spread syntax调用 fetch API . spread的参数不满足fetch的函数签名(参数不能为0或大于2),所以tsc报错。
所以你最好像这样修改它:
const fetcher = async (
input: RequestInfo,
init: RequestInit,
...args: any[]
) => {
const res = await fetch(input, init);
return res.json();
};
包版本: "typescript": "^4.1.3"

关于javascript - 向 SWR 发出请求时出现 typescript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64199630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com