【发布时间】:2021-04-10 10:09:31
【问题描述】:
我正在尝试创建一个函数,只需添加一个 cookie,即可将 fetch 从 node-fetch 包装起来:
import fetch from 'node-fetch';
const api = (path: string, params: RequestInit) => fetch(
path, {
...(params || {}),
headers: {
...(params?.headers || {}),
cookie: 'mycookie'
},
}
)
我在headers 收到此错误:
(property) RequestInit.headers?: string[][] | Headers | {
[key: string]: string;
} | undefined
Type '{ cookie: string; append(name: string, value: string): void; delete(name: string): void; get(name: string): string | null; has(name: string): boolean; set(name: string, value: string): void; forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void; } | { ...; } | { ...; }' is not assignable to type 'string[][] | Headers | { [key: string]: string; } | undefined'.
Type '{ cookie: string; append(name: string, value: string): void; delete(name: string): void; get(name: string): string | null; has(name: string): boolean; set(name: string, value: string): void; forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void; }' is not assignable to type 'string[][] | Headers | { [key: string]: string; } | undefined'.
Type '{ cookie: string; append(name: string, value: string): void; delete(name: string): void; get(name: string): string | null; has(name: string): boolean; set(name: string, value: string): void; forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void; }' is not assignable to type 'undefined'.ts(2322)
最后它说它不能分配给类型“未定义”。我想如果一个类型的值保证是它的联合类型之一,它不应该抱怨。
【问题讨论】:
-
这些方法似乎让 typescript 出错了。
标签: javascript node.js typescript types