如何在 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;
}
我是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;
}