【问题标题】:MongDB cannot find Promise type definitionMongoDB 找不到 Promise 类型定义
【发布时间】:2016-12-20 00:41:09
【问题描述】:

我创建了一个新项目,安装了几个类型定义(来自 distinctlyTyped)并创建了一个基本的src/go.ts 文件。

每当我转译代码时,都会收到大量 TS2304: Cannot find name 'Promise' 错误!
./typings/mongodb/index.d.ts 引用了 Promise,但编译器似乎没有发现它。
请注意,我也安装了 dt~promise

Screenshot(左边是错误,安装了类型定义,右边是应用代码)

typings.json的内容:

{
  "globalDependencies": {
    "dotenv": "registry:dt/dotenv#2.0.0+20160327131627",
    "express": "registry:dt/express#4.0.0+20160708185218",
    "express-serve-static-core": "registry:dt/express-serve-static-core#4.0.0+20160805091045",
    "mime": "registry:dt/mime#0.0.0+20160316155526",
    "mongodb": "registry:dt/mongodb#2.1.0+20160602142941",
    "mongoose": "registry:dt/mongoose#4.5.4+20160807120805",
    "mongoose-promise": "registry:dt/mongoose-promise#4.5.4+20160720003345",
    "node": "registry:dt/node#6.0.0+20160807145350",
    "promise": "registry:dt/promise#7.1.1+20160602154553",
    "serve-static": "registry:dt/serve-static#0.0.0+20160606155157"
  }
}

有什么想法吗?

【问题讨论】:

  • 我也有同样的问题,你找到解决方法了吗?

标签: node.js mongodb typescript mongoose promise


【解决方案1】:

我遇到过同样的问题(或多或少,使用@types 而不是打字)并且能够通过安装 CoreJS 的类型定义来解决它。

Screenshots

为链接到图书馆而道歉,这是我的第一篇文章,所以我无法在每篇文章中提供两个以上的链接。

图片说明:

  • 第一个屏幕截图显示了类似的错误,MongoDB 的类型定义文件无法找到“Promise”。
  • 为 CoreJS 安装类型定义。请注意,我是通过 NPM 而不是 Typings 获取类型定义的。所以要在 Typings 中做类似的事情,你会运行类似的东西:
    • typings install dt~core-js --save --global
  • 第三张截图显示构建命令输出没有错误?

希望这能解决您的问题。

【讨论】:

    【解决方案2】:

    我在安装最新版本的 mongodb 和 mongoose 时遇到了同样的问题。

    mongodb 的新定义文件假定您使用的是 ES6 承诺,因此如果您将tsconfig.json 中打字稿编译器的target 更改为es6,它应该可以解决问题:

    tsconfig.json:

    {
        "compilerOptions": {
            ...
            "target": "ES6",
            ...
        }
    }
    

    【讨论】:

    • 我遇到了与上述相同的问题,并通过此解决方案得到解决,谢谢!
    • 在大多数情况下,你真的不希望 ES6 作为你的编译目标。这将导致任何客户端代码的大量可用性问题以及其他问题。请重新考虑一下。
    • 我们正在讨论 服务器端 JavaScript,所以这不是问题。
    【解决方案3】:

    对于打字:typings install core-js --ambient --save。 它对我有用。

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 2018-01-16
      • 2021-08-15
      • 2017-06-18
      • 2018-07-31
      • 2019-05-15
      相关资源
      最近更新 更多