Javascript Typescript表单重置()不工作

Javascript Typescript表单重置()不工作,javascript,typescript,typescript1.4,Javascript,Typescript,Typescript1.4,我正在使用typescript重置窗体,但它不工作,或者typescript编译器(1.0.3版本)无法识别reset()函数。 编译器给出错误 Build: Interface 'HTMLFormElement' incorrectly extends interface 'HTMLElement'. C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\lib.d.ts 这是typescript代码 var resetForm =docu

我正在使用typescript重置窗体,但它不工作,或者typescript编译器(1.0.3版本)无法识别reset()函数。 编译器给出错误

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

var resetForm =document.getElementById(dirtyFormID);
resetForm.reset();
当我将上述代码复制到js文件时,它工作得非常好


原因是什么?

由于函数
getElementById
返回一个更通用的类型
HTMLElement
,您需要手动断言特定的版本:

var dirtyFormID = 'something';
var resetForm = <HTMLFormElement>document.getElementById(dirtyFormID);
resetForm.reset();
var dirtyFormID='something'; var resetForm=document.getElementById(dirtyFormID); resetForm.reset();
请注意
document.getElementById
返回
HTMLElement
(就像这里已经说过的那样)。 您应该将
HTMLElement
强制转换为
HTMLFormElement

铸件应如下所示:

var resetForm:HTMLFormElement;
resetForm= <HTMLFormElement>document.getElementById('your form id');
if(resetForm)
    resetForm.reset();
var resetForm:HTMLFormElement;
resetForm=document.getElementById(“您的表单id”);
如果(重置表格)
resetForm.reset();
使用typescript

为了避免Google Chrome出现错误“resetForm.reset不是函数”,我在HTML代码中指定了按钮元素的类型“reset”。指定了一个:

type = 'reset'

“使我的函数工作得很好。

元素通常没有
reset()
功能,只有表单元素。您没有明确地说您有一个表单元素
var resetForm:HTMLFormElement=document.getElementById(dirtyFormID)?它根本不工作,出现错误“resetForm.reset不是函数”