2015-05-01 125 views
3

我正在使用typescript重置表單,但它不工作或typecript編譯器(1.0.3版本)不能識別reset()函數。 編譯器提供了錯誤Typescript form reset()not working

Build: Interface 'HTMLFormElement' incorrectly extends interface 'HTMLElement'. C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\lib.d.ts 

這是打字稿代碼

var resetForm =document.getElementById(dirtyFormID); 
resetForm.reset(); 

當我複製上面的代碼到js文件,它的工作完美。

這是什麼原因?

+1

的元素通常不具備'復位()'功能,只有表單元素。你沒有明確說你有一個表單元素 – devqon

+3

var resetForm:HTMLFormElement = document.getElementById(dirtyFormID);'? – CodingIntrigue

回答

11

由於getElementById返回一個更通用的類型HTMLElement您需要手動斷言特定版本的功能:

var dirtyFormID = 'something'; 
var resetForm = <HTMLFormElement>document.getElementById(dirtyFormID); 
resetForm.reset(); 
+0

它根本不工作,出現錯誤「resetForm.reset不是函數」 –

0

請注意,document.getElementById返回HTMLElement(如已經在這裏說的)。 你應該投你HTMLElementHTMLFormElement

鑄造應該是這樣的:

var resetForm:HTMLFormElement; 
resetForm= <HTMLFormElement>document.getElementById('your form id'); 
if(resetForm) 
    resetForm.reset();