我有一个使用 TypeScript 和 MongoDB 的 NodeJS 应用程序(在 Visual Studio 中构建)。
我编写了一个小型库,将 MongoDB 驱动程序包装在一些 TypeScript 类中,就在今天它开始出现问题。
如果我在我的一个库文件的顶部包含这一行:
/// <reference path='./_scripts/typings/mongodb/mongodb.d.ts' />
它构建简短,然后开始提示“重复标识符”,其中有很多,例如:
Error 6 Type name 'Transform' in extends clause does not reference constructor function for '"stream".Transform'.
Error 7 Type name 'events.EventEmitter' in extends clause does not reference constructor function for 'events.EventEmitter'.
Error 8 Duplicate identifier 'errno'.
Error 9 Duplicate identifier 'code'.
Error 10 Duplicate identifier 'path'.
所以我把它去掉,一切都短暂没问题,直到我开始看到围绕这一行报告的问题:
import mongodbNS = require('mongodb');
如果我随后删除该行,我会看到如下错误:
public Connect: () => Promise<mongodbNS.Db>;
我可以通过添加删除内容并利用打开的短暂可编译窗口来蒙混过关 - 但显然这不是方法。
什么是?
最佳答案
and they all come from node.d.ts
发生这种情况是因为您的项目中有 两个 版本的 node.d.ts
(即磁盘上的不同文件)。
关于node.js - TypeScript、MongoDB 和引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924957/