MongoDB 找不到 Promise 类型定义

Posted

技术标签:

【中文标题】MongoDB 找不到 Promise 类型定义【英文标题】:MongDB cannot find Promise type definition 【发布时间】: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"
  

有什么想法吗?

【问题讨论】:

我也有同样的问题,你找到解决方法了吗? 【参考方案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。 它对我有用。

【讨论】:

以上是关于MongoDB 找不到 Promise 类型定义的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 错误 - 找不到类 'yii\mongodb\ActiveRecord'

Ionic 2:更新到 RC.0 后找不到名称“Promise”

找不到类'MongoDB Driver Query'

org.bson.codecs.configuration.CodecConfigurationException:找不到类 org.springframework.data.mongodb.core

致命错误:在第 11 行的 E:\xampp\htdocs\teach\mongo\index.php 中找不到类 'MongoClient' - Mongodb + XAMPP

找不到变量:iOS 7 上的 Promise