2015-04-17 103 views
1

我試圖節點模塊,Q導入我的打字稿項目,並想獲得智能感知的工作100%如何使用Intellisense將節點模塊導入TypeScript?

這工作,但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和打字稿1.4

注:我已經看到了堆類似的問題,但這些解決方案不起作用爲新版本的打字稿。

回答

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

或者,你可以移動require呼叫module塊外面,用`進口替代:

import q = require('q'); 
+0

''VAR問:typeof運算Q =需要( 'Q');''似乎部分工作。我有權訪問這些方法,但不能使用這些接口(例如我不能使用q.IPromise ,我必須使用大寫Q,所以我仍然混合使用較低和較高Q. 當我添加「 import q = require('q');''在模塊之外,Visual Studio不能再找到具有相同模塊名稱的外部''ts''文件,例如「module example {var service:myService;} ''出現錯誤:''找不到名字'myService'.'' – joelnet

相關問題