Typescript 如何标记将函数的返回类型标记为自定义类型的承诺

Typescript 如何标记将函数的返回类型标记为自定义类型的承诺,typescript,bluebird,Typescript,Bluebird,我有一个代码片段,看起来像这样 import * as Promise from 'bluebird'; import {Response} from '../commonInterfaces/httpService'; getCall(url: string, accessToken: string, extraHeaders: object): Promise<Response> { let headers = this.getHeaders(accessToken,

我有一个代码片段,看起来像这样

import * as Promise from 'bluebird';
import {Response} from '../commonInterfaces/httpService';

getCall(url: string, accessToken: string, extraHeaders: object): Promise<Response> {
    let headers = this.getHeaders(accessToken, extraHeaders);
    return new Promise((resolve, reject) => {
        request({
            url: url,
            method: "GET",
            withCredentials: false,
            json: true,
            headers: headers
        }, (err: Error, response: Response) => {
            if (err) {
                reject(err)
            } else {
                resolve(response)
            }
        });
    });
}
我得到了以下错误

[ts]
Type 'Bluebird<{}>' is not assignable to type 'Bluebird<Response>'.
Type '{}' is not assignable to type 'Response'.
Property 'statusCode' is missing in type '{}'.
[ts]
类型“Bluebird”不可分配给类型“Bluebird”。
类型“{}”不可分配给类型“Response”。
类型“{}”中缺少属性“statusCode”。

可能是什么问题?

编译器似乎无法通过调用
resolve(response)

您可以通过自己指定通用约束来“帮助”它:

return new Promise<Response>((resolve, reject) => { ... });
返回新承诺((解析,拒绝)=>{…});
return new Promise<Response>((resolve, reject) => { ... });