TypeScript编译器找不到我先前声明的变量
问题描述:
我正在尝试创建一个Node.js应用程序,它将连接到MongoDb数据库。我正在使用TypeScript。但下面的代码行很麻烦。TypeScript编译器找不到我先前声明的变量
/// <reference path="mongodb.d.ts" />
var mongo = require('mongodb');
class DefaultModel<T> {
private db : mongo.Db;
}
TSC报告:TS2095: Could not find symbol 'mongo'.
。我不明白为什么它不能在课堂以外宣布它。你能帮我弄清楚为什么?
模块被宣布mongodb.d.ts为declare module "mongodb" { /* Omitted */ }
答
TS2095:找不到符号 '蒙戈'。
您试图在型 delaration空间来使用它::mongo.Db;
。而你只需要它在变量声明空间中声明:var mongo
修复:使用import
不var
:
/// <reference path="mongodb.d.ts" />
import mongo = require('mongodb');
这是有道理的,但如果我在代替使用进口我得到这个:'TS5037:除非提供'--module'标志,否则不能编译外部模块。' – 2014-10-06 14:21:47
没想到,我发现我错过了编译器的--module“commonjs”参数。谢谢 :) – 2014-10-06 14:30:05