如何使用 Svelte 在输入元素 on:input 操作中使用这种形式的内联解构来转换此目标?
How to cast this target using this form of inline destructuring in a input element on:input action using Svelte?
我不知道如何在 Svelte 3 形式中使用这种形式的内联解构在此处转换此 target
:
<input
on:input={({ target: { value } }) => doSomething(value)}
/>
因为打字稿现在抱怨:
Property 'value' does not exist on type 'EventTarget'
我想断言 target
是一个 HTMLInputElement
。
我错了吗?
target
是事件起源的元素。对于冒泡事件,这无法静态确定,因此 target
是防御性类型(另请参阅 this issue)。 currentTarget
然而,如您所料,输入为 HTMLInputElement
。
<input
on:input={({ currentTarget: { value } }) => doSomething(value)}
/>
Svelte 标记目前不支持类型转换。解决方法是在脚本标记中声明一个函数并在那里进行转换。
<script lang="ts">
function onInput(e: Event) {
const target = e.target as HTMLInputElement;
..
}
</script>
<input
on:input={onInput}
/>
我不知道如何在 Svelte 3 形式中使用这种形式的内联解构在此处转换此 target
:
<input
on:input={({ target: { value } }) => doSomething(value)}
/>
因为打字稿现在抱怨:
Property 'value' does not exist on type 'EventTarget'
我想断言 target
是一个 HTMLInputElement
。
我错了吗?
target
是事件起源的元素。对于冒泡事件,这无法静态确定,因此 target
是防御性类型(另请参阅 this issue)。 currentTarget
然而,如您所料,输入为 HTMLInputElement
。
<input
on:input={({ currentTarget: { value } }) => doSomething(value)}
/>
Svelte 标记目前不支持类型转换。解决方法是在脚本标记中声明一个函数并在那里进行转换。
<script lang="ts">
function onInput(e: Event) {
const target = e.target as HTMLInputElement;
..
}
</script>
<input
on:input={onInput}
/>