我是TypeScript的新手,我正在重构我的React应用程序。我得到了以下错误:
TS2345: Argument of type '{ standardHeaders: Headers; }' is not assignable to parameter of type 'RequestInit'.
Object literal may only specify known properties, and 'standardHeaders' does not exist in type 'RequestInit'.
这是我的原始代码,没有任何TypeScript错误:
const headers = new Headers({
Accept: 'application/vnd.api+json',
});
fetch(url, { headers })
然后我将头文件移动到一个单独的文件,因为它在几个地方使用:
globals.tsx
export const standardHeaders = new Headers({
Accept: 'application/vnd.api+json',
});
myfile.tsx
import { standardHeaders } from '../globals';
fetch(url, { standardHeaders })
这会导致类型不能赋值给参数"错误。
我假设我需要以某种方式设置standardHeaders
的类型,但我该怎么做呢?
fetch
的第二个有效参数是一个包含headers
而不是standardHeaders
的对象,所以只要你改变属性,它就会工作:
import { standardHeaders } from '../globals';
fetch(url, { headers: standardHeaders })
你的原始代码的变量名和属性是相同的headers
,这就是为什么它正常工作