我在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
的类型