首页 > 解决方案 > 使用 Bluebird 在 typescript 中引发编译错误

问题描述

我收到一个错误

Bluebird<{}>' is not assignable to type 'Bluebird<boolean>

编译以下代码时

import * as Promise from 'bluebird'

function getPromise() : Promise<boolean> {
    return new Promise((resolve, reject) => {
        resolve(true);
    })
}

let p : Promise<boolean> = getPromise();
p.then(a => console.log("Done"));

蓝鸟版本 - 3.5.1

节点版本 - 6.10.3

打字稿版本 - 2.3.1

标签: node.jstypescriptpromisebluebird

解决方案


这在较新版本的打字稿中不是问题,其中的泛型参数new Promise将由预期的返回类型推断。但是,在 2.3 中,您必须将泛型参数显式指定为Promise

function getPromise() : Promise<boolean> {
    return new Promise<boolean>((resolve, reject) => {
        resolve(true);
    })
}

推荐阅读