0

나는 Visual Studio 2012을 사용 중이며 JavaScript Windows Store App을 만들고 있습니다.JavaScript IntelliSense가 Visual Studio 2012에서 항상 작동하지 않는 이유는 무엇입니까?

대부분 인텔리 센스가 작동하지만 일부 경우에는 그렇지 않습니다. 왜 그런지 궁금 하네. 다른 항목이 표시되지만, "winControl"항목이 인텔리에 나타나지 않습니다

var ctl=document.getElementById("txtName").winControl; 

, 그러나 그것은 여전히 ​​작동 : 다음은 몇 가지 예입니다. 이 행의 "srcElement"에 대해서도 마찬가지입니다.

var nameInput = eventInfo.srcElement; 

예상치 못한 결과입니까 아니면 누락 되었습니까?

+1

어쩌면 그것은 단지 보여줍니다 표준 DOM 속성? –

답변

5

강하게 입력 된 언어와 달리 JavaScript를 자세히 살펴보면 편집기가 실행할 수있는 HTML 페이지 내에 JavaScript 코드가 작성되어 있지 않으면 이러한 값이 어떻게 될지 파악하기가 더 어려워집니다 실시간.

var myFunc = function (evt) { console.log(evt); } 

window.onclick = myFunc; 

myFunc("Bob"); 

는 IDE는의 만들기 위해 무엇을 생각하고, evt 어떤 특성을 가지고해야합니까?

JavaScript의 유형이 강력하고 해당 함수가 Event 객체 또는 ClickEvent 객체 만 수용 할 수 있으면 IDE는 예상되는 속성을 정확히 알 수 있습니다.

마찬가지로 하나의 페이지에 <a>과 같은 "myEl"이 있고 다른 페이지의 ID가 <canvas> 인 경우 속성은 무엇입니까?

+0

그건 의미가 있습니다. 따라서 원래 게시물의 첫 번째 예에서 intellisense는 선택된 요소와 상관없이 공통적 인 항목을 나열합니다. IDE가 txtName이 해당 속성을 지원하는 객체를 나타낼지 모르기 때문에 winControl이 표시되지 않습니다. 나는 좋은 설명이 있다는 것을 알았고 그것을 알아내는 데있어서 시작하기 만하면된다. 당신의 설명에 감사드립니다. – DarLom

0

Norguard는 JS와 같은 동적 언어에 대한 제안을 제공하는 데 어려움을 겪고 있습니다. 이와 같은 상황을 돕기 위해 문서 주석을 사용하여 Visual Studio JavaScript 편집기에 대한 힌트를 제공 할 수 있습니다. 예를 들어, 나는 다음과 같은 코드를 사용할 수 있습니다

/// <var type="WinJS.UI.ListView"/> 
var listView = document.querySelector("#listView").winControl; 

을하고 /// 주석 내 목록보기 변수로 WinJS.UI.ListView 유형을 연결합니다. listView.을 입력하면 ListView에 대한 제안 사항이있는 완료 목록이 표시됩니다.

  • 요르단, 마이크로 소프트 비주얼 스튜디오 PM
관련 문제