为什么JavaScript Intellisense不总是在Visual Studio 2012中工作?
我使用Visual Studio 2012并构建了一个JavaScript Windows应用商店应用。为什么JavaScript Intellisense不总是在Visual Studio 2012中工作?
对于绝大多数情况下,intellisense起作用,但对于某些情况则不起作用。我只是想知道为什么。这里有几个例子:
var ctl=document.getElementById("txtName").winControl;
虽然其他项目露面,“WINCONTROL”项目不会在智能感知出现,但它仍然有效。同样在这条线无二“srcElement”:
var nameInput = eventInfo.srcElement;
这是可以预期的还是我失去了一些东西?
随着您深入研究JavaScript,与强类型语言不同,要弄清楚这些值将会变得更加困难,除非JavaScript代码是在HTML页面内编写的,编辑器可以通过该代码运行实时。
var myFunc = function (evt) { console.log(evt); }
window.onclick = myFunc;
myFunc("Bob");
什么是IDE应该做的是,而且应该evt
有什么特性?
如果JavaScript是强类型的,并且该函数只能接受Event对象或ClickEvent对象,那么IDE可以确切知道期望的属性。
就像.getElementById
- 如果一个页面的“myEl”为<a>
,而另一个页面的ID为<canvas>
,那么属性应该是什么?
这很有道理。因此,在我的原始文章的第一个示例中,无论选择哪个元素,intellisense都列出了常见的项目。 winControl不显示,因为IDE不知道txtName将代表支持该属性的对象。我知道有一个很好的解释,只需要一个快速启动就能搞清楚。谢谢你的解释。 – DarLom
Norguard对于为诸如JS这样的动态语言提供建议方面的困难是正确的。为了在这种情况下提供帮助,可以使用文档注释向Visual Studio JavaScript编辑器提供提示。例如,我可以使用下面的代码:
/// <var type="WinJS.UI.ListView"/>
var listView = document.querySelector("#listView").winControl;
和///评论会与我的ListView变量WinJS.UI.ListView类型相关联。然后键入listView.
将显示带有ListView建议的完成列表。
- 约旦,微软的Visual Studio PM
也许这只能说明标准DOM属性? –