【问题标题】:Property 'checked' does not exist on type 'HTMLElement'.“HTMLElement”类型上不存在“已检查”属性。
【发布时间】:2018-09-07 04:03:20
【问题描述】:
我在打字稿文件中有这段代码
function debug_show_removed_flights() {
if ($('.debug-window #show_removed_flights')[0].checked) {
$('.fly-schedule-removed_reason').show();
return $('.fly-schedule-remove').show();
} else {
$('.fly-schedule-removed_reason').hide();
return $('.fly-schedule-remove').hide();
}
};
但是在这一行,我有错误。
if ($('.debug-window #show_removed_flights')[0].checked) {
[ts] 类型“HTMLElement”上不存在属性“checked”。
我该如何解决?
【问题讨论】:
标签:
javascript
jquery
typescript
【解决方案1】:
只有HTMLInputElement 具有选中的属性。你可以转换你的元素,这样它就会转译:
function debug_show_removed_flights() {
const input = $('.debug-window #show_removed_flights')[0] as HTMLInputElement;
if (input.checked) {
$('.fly-schedule-removed_reason').show();
return $('.fly-schedule-remove').show();
} else {
$('.fly-schedule-removed_reason').hide();
return $('.fly-schedule-remove').hide();
}
}
【解决方案2】:
添加HTMLInputElement inline 如下
function debug_show_removed_flights() {
const input = $('.debug-window #show_removed_flights')[0];
if ((input as HTMLInputElement).checked) {
$('.fly-schedule-removed_reason').show();
return $('.fly-schedule-remove').show();
}
else if (!(input as HTMLInputElement).checked) {
$('.fly-schedule-removed_reason').hide();
return $('.fly-schedule-remove').hide();
}
}