Mad*_*dhu 1 javascript dom angularjs typescript
我正在尝试重置HTML表单,以便使用清除输入字段中的所有值。
document.getElementById('myForm').reset();
Run Code Online (Sandbox Code Playgroud)
但是我可以在打字稿中使用它,这给了我一个错误,说 document.getElementById('myForm') may be null
我该如何解决这个问题?
如果您使用strictNullChecks
选项(或strict
包含strictNullChecks
),Typescript将强制您检查该值是否不为null 。您可以执行测试,也可以使用非null断言(!)。另外,您将需要使用类型断言来断言html元素是一个HTMLFormElement
as,因为默认情况下它只是一个HtmlElement
并且reset
仅存在HTMLFormElement
只是一个断言断言:
(document.getElementById('myForm') as HTMLFormElement).reset();
Run Code Online (Sandbox Code Playgroud)
带有支票的断言(推荐):
let form = document.getElementById('myForm')
if(form) (form as HTMLFormElement).reset();
Run Code Online (Sandbox Code Playgroud)
不是null断言(如果您只想访问HtmlElement
成员):
document.getElementById('myForm')!.click()
Run Code Online (Sandbox Code Playgroud)