Intellisense Javascript静态命名空间

时间:2016-12-28 15:19:16

标签: javascript visual-studio-code ecmascript-5

我正试图在visual studio代码中获得intellisense。以下代码工作正常:

var Bar = function(){
}

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

Intellisense working

但是在写作时我没有回复任何智能感知:

var FOO = {};

FOO.Bar = function(){
}

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

Not working

这可能是由于我不知道的限制,但我找不到任何提及此的文档/帖子。有没有办法让它工作而不重写大部分?

1 个答案:

答案 0 :(得分:1)

我在VSCode中使用TypeScript和JavaScript支持。从VSCode 1.8.1开始,这种类型的动态属性赋值不是我们的IntelliSense识别的。

我们使用TypeScript为我们的TypeScript和JavaScript IntelliSense提供支持,虽然TypeScript能够识别第一个示例中显示的常见prototype模式,但它无法识别添加到对象的属性,就像你的第二个例子。这意味着FOO.Bar将始终具有any类型。

我们在TypeScript项目中跟踪对此类IntelliSense的支持:https://github.com/Microsoft/TypeScript/issues/13271