如何在VisualStudio.NET2008中保留JavaScript全局变量的intellisense
我有一个JavaScript包装器,我在主体加载时初始化它并将其设置为一个全局变量。刚创建完对象,我就有了完整的intellisense,但是当稍后从另一个函数引用它时,intellisense就丢失了。我认为这是因为动态键入:如何在VisualStudio.NET2008中保留JavaScript全局变量的intellisense,javascript,asp.net,visual-studio,intellisense,Javascript,Asp.net,Visual Studio,Intellisense,我有一个JavaScript包装器,我在主体加载时初始化它并将其设置为一个全局变量。刚创建完对象,我就有了完整的intellisense,但是当稍后从另一个函数引用它时,intellisense就丢失了。我认为这是因为动态键入: var myWrapper; function onload() { myWrapper = new Wrapper(args); myWrapper. //Intellisense here. } function whatever() {
var myWrapper;
function onload() {
myWrapper = new Wrapper(args);
myWrapper. //Intellisense here.
}
function whatever() {
myWrapper. //Intellisense lost.
}
我通过在代码之前假装再次创建对象,然后删除该行来解决此问题:
function whatever() {
myWrapper = new Wrapper(); //Pretend to create object again.
myWrapper. //Intellisense returns!
}
VisualStudio2010中的推断是否得到了改进,或者是否有任何方法可以告诉JavaScript我当前正在处理的对象的类型?除非您知道它是什么类型(通过使用
new
关键字,很难猜出它是什么
例如,考虑下面的
var myArray;
myArray. //intellisense has no idea this is meant to be an array
var myArray = new Array();
myArray. //intellisense knows it is a array (.pop, .push, .join etc)
所以,是的,也许允许你的对象被设置(没有像你那样的args)并把它放在顶部
var myWrapper = new Wrapper();
// now whenever myWrapper is used, intellisense
// should appear (provided it knows what Wrapper is