2015-11-01 157 views
2

得到一個「HTMLInputElement」類型有一個<input type="checkbox" id="mainCheckbox" />,我想用財產checked it.And的vscode華林Property 'checked' does not exist on type 'HTMLElement'。我知道那一定是HTMLInputElement類型,但我不能改變它,方法getElementById()是返回類型HTMLElement;在打字稿

var controlCheckbox= document.getElementById("mainCheckbox"), 
    addBtn = document.getElementById("btn_add"), 
    container = document.getElementById("observers"); 
ObserverSubject.extend(new ObserverSubject.Subject(), controlCheckbox); 
controlCheckbox.onclick=()=>{ 
    this.Notify(controlCheckbox.checked); 
} 

enter image description here

+2

不工作,警告 '型 'HTML元素' 是不能分配給輸入 'HTMLInputElement'。 如果我重寫代碼 'var controlCheckbox:HTMLInputElement = document.getElementById(「mainCheckbox」)'',那麼屬性'accept'在類型'HTMLElement''中缺少, 。 – codelegant

回答

19

試試這個簡單的轉換:

var controlCheckbox = <HTMLInputElement>document.getElementById("mainCheckbox") 
+1

感謝您的回答。 – codelegant