“HTMLElement”类型上不存在“已检查”属性。

Posted

技术标签:

【中文标题】“HTMLElement”类型上不存在“已检查”属性。【英文标题】:Property 'checked' does not exist on type '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”。

我该如何解决?

【问题讨论】:

【参考方案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();
    


【讨论】:

以上是关于“HTMLElement”类型上不存在“已检查”属性。的主要内容,如果未能解决你的问题,请参考以下文章

错误:类型 HTMLElement 上不存在属性“选择”

“HTMLElement”类型上不存在属性“src”

useRef Typescript 错误:“HTMLElement”类型上不存在属性“当前”

TS2339:“JQuery<HTMLElement>”类型上不存在属性“selectpicker”

赛普拉斯链接 DOM 元素 - 类型“JQuery<HTMLElement>”上不存在属性“then”

ReactJS / TypeScript-属性'file'在类型'HTMLElement'错误时不存在