我的html文件上有一个复选框.
<input id="is3dCheckBox" type="checkbox" checked="checked" />
Run Code Online (Sandbox Code Playgroud)
如果选中此复选框,我想在.ts文件中知道.
在我获得此元素以进行检查后应该进行什么演员表?
Fen*_*ton 39
您只需要使用类型断言来告诉TypeScript它是一个HTMLInputElement:
var element = <HTMLInputElement> document.getElementById("is3dCheckBox");
var isChecked = element.checked;
Run Code Online (Sandbox Code Playgroud)
更新:
任何想法为什么var element = document ...工作但var元素:HTMLInputElement = document ...不?
当您使用getElementById返回的元素时,可以是任何类型的HTML元素.例如,它可以是段落标记.因此,此DOM方法的类型定义返回非常通用的HTMLElement类型.
当您尝试以下操作时:
var element: HTMLInputElement = document.getElementById('is3dCheckBox');
Run Code Online (Sandbox Code Playgroud)
编译器警告您结果getElementById不是a HTMLInputElement或子类型HTMLInputElement(因为它实际上是你想要的超类型).
当您知道元素类型时,使用类型断言告诉编译器类型是完全正常的.当您使用Type Assertion时,您可以告诉编译器您更了解.
在某些情况下,编译器在使用类型断言时仍然会警告你,因为它可以告诉断言可能是一个错误 - 但你仍然可以强制它,但首先扩大类型:
var isChecked = (<HTMLInputElement><any>myString).checked;
Run Code Online (Sandbox Code Playgroud)
any在断言之前,字符串变量被扩展为类型HTMLInputElement.希望你不需要经常使用这种类型的断言.
| 归档时间: |
|
| 查看次数: |
30523 次 |
| 最近记录: |