2016-12-28 47 views
2

我想在Visual Studio代碼中獲得intellisense。下面的代碼工作正常:Intellisense Javascript靜態命名空間

var Bar = function(){ 
} 

Bar.prototype.logMsg = function(msg){ 
    console.log(msg); 
} 

Intellisense working

但我不recive任何智能感知書寫時:

var FOO = {}; 

FOO.Bar = function(){ 
} 

FOO.Bar.prototype.logMsg = function(msg){ 
    console.log(msg); 
} 

Not working

這可能是由於限制我不知道,但我找不到任何文件/職位提到這一點。有沒有一種方法可以在不重寫大部件的情況下工作?

回答

1

我使用VSCode中的TypeScript和JavaScript支持。從VSCode 1.8.1開始,這種類型的動態屬性分配並不是我們的IntelliSense所能識別的。

我們使用TypeScript我們雙方打字稿和JavaScript智能感知力量,而打字稿是能夠識別你的第一個例子中所示的共同prototype模式,它不能識別特性添加到對象,如你的第二個例子。這意味着FOO.Bar將始終有一個any類型。

我們正在跟蹤對TypeScript項目中此類智能感知的支持:https://github.com/Microsoft/TypeScript/issues/13271