我正在使用node-fetchnpm 模块,并有一个辅助函数来向第三方服务发出授权请求(基本上只是用于添加授权标头的中间件)。
async function makeAuthorizedRequest(url: string, options: RequestInit) {
if (!options) {
options = { headers: {} as HeadersInit }
}
if (!options.headers) {
options.headers = {} as HeadersInit
}
options.headers.Authorization = `Bearer ${access_token}`
if (!options.headers['User-Agent']) {
options.headers['User-Agent'] = USERAGENT
}
return fetch(url, options)
}
Run Code Online (Sandbox Code Playgroud)
该RequestInit类型被定义为具有如下定义的headers类型属性HeadersInit
export type HeadersInit = Headers | string[][] | { [key: string]: string };
Run Code Online (Sandbox Code Playgroud)
我在 IDE (VSCode) 中遇到两个不同的错误,并tsc拒绝编译它,因为
Property 'Authorization' does not exist on type 'Headers'.ts(2339) …Run Code Online (Sandbox Code Playgroud)