TypeScript:复选框输入的正确“ HTML类型”是什么?

时间:2020-02-06 10:00:42

标签: javascript html typescript

我在angular2应用程序中有一个复选框。我捕获了点击事件,并检查了checked属性值。

但是,在编译期间,无法识别event.target.checked

error TS2339: Property 'checked' does not exist on type 'EventTarget'.

基于此post,我应该告知打字稿该类型。

但是我的输入是什么类型?我没有发现与代码完成中的复选框相关的任何内容,并且HTMLInputElement引发了相同的错误。


HTML输入

<input id="ID" formControlName="key" type="checkbox"
                    aria-label="Checkbox for following text input">

打字稿

$("#id").on('click', (event:Event) => {
  if (<WHAT SHOULD BE THERE ?>(event.target).checked) {
    $("#id").prop('checked', false);
  } else {
    $("#id").prop('checked', true);
  }
}

2 个答案:

答案 0 :(得分:1)

let test: HTMLInputElement;
console.log(test.checked);

工作正常,在我的React代码库中没有错误。检查您的打字稿没有崩溃!

答案 1 :(得分:0)

但是我的输入是什么类型?

如果不确定复选框事件的类型,则可以将其用作 any ,它可以接受任何格式的任何数据。

在上述情况下,应该使用event.checked而不是event.target.check,并且类型定义(event:Event)=> {}应该替换为(event:any)=> {}