TypeScript错误-应为1-2个参数,但得到了0个或更多.TS2556



我在JavaScript中使用了此语句,但当我试图在TypeScript项目中使用它时,我遇到了一个错误。它在抱怨提取(…args(

const fetcher = (...args) => fetch(...args).then(response => response.json());
Expected 1-2 arguments, but got 0 or more.  TS2556

这应该会对您有所帮助:

const fetcher = (...args: [input: RequestInfo, init?: RequestInit | undefined]) => fetch(...args).then(response => response.json());

您应该显式键入fetch的参数。它需要1-2个参数。

如果你想使用rest运算符,你应该告诉TS,你也希望在你的高阶函数中有两个参数

更新

通用方法。如果您想获得任何函数的参数类型,只需使用Parametersutil即可。

type FetchParameters = Parameters<typeof fetch>

从@Keith的评论中得到这个答案,这是唯一对我有效的东西:

const fetcher = (...args: Parameters<typeof fetch>) => {
fetch(...args).then(response => response.json());
}

具体添加此Parameters<typeof fetch>作为...args的类型

相关内容

  • 没有找到相关文章

最新更新