我试图将节点模块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
注意:我在堆栈上看到了类似的问题,但这些解决方案不适用于较新版本的打字稿。
答案 0 :(得分:1)
var q: typeof Q = require('q');
或者,您可以将require
调用移到module
块之外,然后使用`import:
import q = require('q');