如何在 TypeScript (ember) 中获取输入值?

How to get input value in TypeScript (ember)?

我是Ember的新手,尝试在YT教程后自己制作简单的待办事项应用程序。但是,当我尝试访问输入值时遇到问题。

Property 'value' does not exist on type 'EventTarget'

我的函数:

updateNewItemValue(event: InputEvent) {
    this.newItem = event!.target.value;
 }

在模板中使用它:

<input
    type='text'
    {{on 'input' this.updateNewItemValue}}
    value={{this.newItem}}
/>

也许我为 事件 参数使用了错误的类型?

在 Typescript 中,它不知道事件将来自哪种元素。所以我喜欢做的是断言元素是正确的。

这样做的好处是可以在开发人员 mis-configure 做某事时向他们提供明确的信息。

此外,assert 已在生产版本中删除。

import { assert } from '@ember/debug';

// ...

updateNewItemValue(event: Event) {
  assert(
    `Expected input event handler to be used an an 'input' element,` + 
    ` instead received: ${event.target.tagName}.`,
    event.target instanceof HTMLInputElement
  );

  this.newItem = event.target.value;
}