[TypeScript / 오류] Property 'value' does not exist on type 'EventTarget'.

@Emit()을 이용한 코드 작성 중 다음과 같은 오류가 발생하였습니다.

Property 'checked' does not exist on type 'EventTarget'.

해당 HTML 부분과 @Emit에 정의된 부분은 다음과 같습니다.

 

HTML

<input type="checkbox" :checked="checked" @change="change">

@Emit

@Emit()
change(event: Event) {
  return event.target.checked;
}

event.targetHTMLElement이지만 checked라는 값을 가지고 있는것이 보장되어있진 않습니다. 따라서 TypeScript에서 에러를 발생시키는 것입니다. 해당 부분을 적절한 HTML Element로 바꿔주면 해결됩니다.

 

수정

에러가 난 부분은 input 태그이므로 다음과 같이 수정하여 해결가능합니다.

@Emit()
change(event: Event) {
  return (event.target as HTMLInputElement).checked;
}