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

时间:2015-04-17 21:28:08

标签: node.js visual-studio-2013 typescript

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

这样可行,但q设置为any,这意味着没有智能感知。我还必须使用Q和q的混合,这可能会让人感到困惑。

/// <reference path="Scripts/typings/q/Q.d.ts" />

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/Q.d.ts" />

module example {

    // BAD: this doesn't work
    var q: Q = require('q');
}

文件结构:

Q is in /node_modules/q/
Q.d.ts is in /Scripts/typings/q/Q.d.ts

我使用的是Visual Studio 2013 SP4和TypeScript 1.4

注意:我在堆栈上看到了类似的问题,但这些解决方案不适用于较新版本的打字稿。

1 个答案:

答案 0 :(得分:1)

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

或者,您可以将require调用移到module块之外,然后使用`import:

import q = require('q');