2017-01-10 11 views
0

VSCode가 JavaScript 클래스의 멤버 함수 내에서 this 키워드를 해당 클래스의 인스턴스로 해석하도록하는 방법이 없으므로 다음에 대해 인텔리 센스를 제공합니다. 다른 회원 및 속성입니까?VSCode에서 JavaScript in Intellisense가이 클래스의 유형을 클래스 내부에서 인식하지 못합니다.

자동으로 인스턴스에 바인딩되지 않기 때문에 함수가 호출 될 때 반드시 필요한 것은 아니라는 것을 알고 있지만 대부분의 경우 (적어도 내 경험에서는) 바람직한 동작이므로, this 개체의 형식을 자체 참조로 가정하는 것이 좋습니다.

업데이트 : 시간이 지나면 추측하여 문제가 발생했다는 것을 알았습니다. 사실 Visual Studio 코드는 아니지만 필자가 작성한 수업에서 생각한 것 같습니다. 내 솔루션을 답으로 찾을 수 있습니다.

답변

0

잠시 기다렸다가 (질문을 입력 한 다음 VSCode를 다시 확인한 후) 메소드가 표시되기 시작했고 다른 프로젝트 중 하나를 살펴본 후에 내가 작성한 클래스가 해당 속성을 가지고 있다는 것을 깨달았습니다. 또한 나타납니다. 일부 시행 착오 끝에 나는 생성자에서 선언 된 경우에만 속성이 표시된다는 결론에 도달했기 때문에 원래 문제의 원인은 개체에 몇 가지 추가 특성을 할당 한 별도의 초기화 메서드를 사용했기 때문입니다.

솔루션 : 당신은 (때문에 내 경우에는 비동기 약속의 예를 들어)를 실행하는 생성자의 시간에 알 수없는 값, 그냥 그들과 VSCode에 undefined를 할당하는 것이 나중에 어떤 속성을 할당해야하는 경우 그것을 집어 올 것이다!

+1

get/set을 사용하여 속성을 정의하면 생성자에서 정의했는지 여부에 상관없이 Intellisense에 표시됩니다. –

+0

이 솔루션을 이용해 주셔서 감사합니다! 'undefined'를 지정하는 것보다 훨씬 깔끔합니다. 나는 그것이 내 경우에 잔인 함이 될 수도 있다고 생각하지만. – Isti115