Intellisense Javascript 静态命名空间

Intellisense Javascript static namespacing

我正在尝试在 visual studio 代码中获取智能感知。以下代码工作正常:

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

这可能是由于我不知道的限制所致,但我找不到任何 documentation/posts 提到这一点。有没有办法让它在不重写大部分的情况下工作?

我从事 TypeScript 工作,JavaScript 支持 VSCode。从 VSCode 1.8.1 开始,我们的 IntelliSense 无法识别这种类型的动态 属性 赋值。

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

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