打字稿表格重置()不起作用

Typescript form reset() not working

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

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

这是打字稿代码

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

当我将上面的代码复制到 js 文件时,它工作得很好。

这是什么原因?

由于函数 getElementById returns 是更通用的类型 HTMLElement 您需要手动断言特定版本:

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

请注意 document.getElementById returns HTMLElement(就像这里已经说过的)。 您应该将 HTMLElement 转换为 HTMLFormElement

选角应该是这样的:

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

使用打字稿。

为了避免 Google Chrome 错误 "resetForm.reset is not a function",我在 HTML 代码中指定了按钮元素的类型 "reset"。指定了一个:

type = 'reset'

使我的功能运行良好。