속성 : 나는 폐쇄 컴파일러는 myElement.div의 유형을 모르는 것으로 나타났습니다자바 스크립트 구글 폐쇄 주석 내가 자바 스크립트 UI는 다음과 같이 객체가 유형
function MyUIElement() {
div = document.createElement("div");
div.id = "my_element_x";
div.innerHTML = "whatever";
...
this.hide = function() {
div.style.display = "none";
};
this.show = function() {
div.style.display = "block";
};
this.showData = function(data) {
...
}
this.div = div;
}
function addUIElement(element) {
app_div.appendChild(element);
}
myElement = new MyUIElement();
addUIElement(myElement.div)
, 그래서 나는 그것을 위해 유형을 추가 :
function MyUIElement = {
/**
* @type {Element}
*/
div = document.createElement("div");
div.id = "my_element_x";
div.innerHTML = "whatever";
...
하지만 여전히 유형을 알지 못합니다. 형식을 인식하려면 "this.div = div"주석을 달아야합니다.
나는 이런 종류의 시나리오에 대한 최상의/일반적인 해결책이 무엇인지 궁금 할뿐입니다. 두 번 주석 달기를 피하기 위해 div에 액세스 할 때마다 this.div를 사용해야합니까? MyUIElement 클래스의 public/private 변수를 제어해야하는 다른 방법이 있습니까?
감사합니다. 아직도 내 질문에 관련이 없습니다. – user3117610
간단하고 고급 스 니펫을 컴파일 할 때 작동 했으므로 문제가 무엇입니까? 당신은 여전히 전역 변수'div'를 가지고 있습니다. 'var div = this.div = ...'를 시도해보고 고급 컴파일러를 사용하고 있다고 가정합니다. – megawac
'@ expose'은 (는) 더 이상 사용되지 않습니다. 제작자는 대신 @ export를 사용하도록 코드를 마이그레이션해야합니다. –