2016-12-28 46 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