无法匹配打字稿中的请求选项 Header

Cannot match Request Options Header in typescript

我正在尝试在 Typescript 中使用 Request 包,方法定义为:-

export function request(options?: Options, callback?: (error: any, response: any, body: any) => void): Request;

我在尝试匹配选项中的 header 时遇到问题。选项和 Header 定义为:-

    export interface Options {
        url?: string;
        headers?: Headers;
        ...
        ...

    export interface Headers {
        [key: string]: any;
    }

我的选项如下:-

var requestOptions = {
    url: 'https://www.wigglewoowoo.com',
    method: 'POST',
    headers: {
        'Connection': 'close'
    },
    body: returnBody,
    strictSSL: true,
    rejectUnauthorized: false,
    requestCert: true,
    agent: false
};

我得到一个 "is not assignable to parameter of type Options" 除非我排除 header。我看不出有什么问题?

最好的解决方法是在此处(第一行)添加类型注释:

var requestOptions: Options = {
    url: 'https://www.wigglewoowoo.com',
    method: 'POST',
    headers: {
        'Connection': 'close'
    },
    ... ...

要了解原因,请参阅 this long question/answer about how object literals and index signatures interact(此处的情况略有不同,但适用相同的一般问题)。