如何使用Intellisense将节点模块导入到TypeScript中?

我试图导入节点模块,Q到我的TypeScript项目,并希望得到Intellisense工作100%

这是有效的,但q被设置为any ,这意味着没有智能感知。 我也必须使用Q和Q的混合,这会混淆。

 /// <reference path="Scripts/typings/q/Qdts" /> module example { // no intellisense on q var q = require('q'); // we do get intellisense on deferred though var deferred: Q.Deferred<void> = q.defer(); } 

我们不能这样做,因为Q是一个模块,所以:Q部分会导致错误。

 /// <reference path="Scripts/typings/q/Qdts" /> module example { // BAD: this doesn't work var q: Q = require('q'); } 

文件结构:

 Q is in /node_modules/q/ Qdts is in /Scripts/typings/q/Qdts 

我正在使用Visual Studio 2013 SP4和TypeScript 1.4

注意:我已经看到类似的问题,但这些解决scheme不适用于新版本的打字稿。

 var q: typeof Q = require('q'); 

或者,您可以将require调用移动到module块之外,并使用`import来代替:

 import q = require('q');