Typescript 如何在输入元素中使用这种形式的内联分解将此目标强制转换为:使用Svelte的输入操作?
我不知道如何在这里以Svelte 3的形式使用这种形式的内联解构来投射这个Typescript 如何在输入元素中使用这种形式的内联分解将此目标强制转换为:使用Svelte的输入操作?,typescript,typescript-typings,svelte,svelte-3,Typescript,Typescript Typings,Svelte,Svelte 3,我不知道如何在这里以Svelte 3的形式使用这种形式的内联解构来投射这个目标: <input on:input={({ target: { value } }) => doSomething(value)} /> doSomething(值)} /> 因为typescript现在正在抱怨: 类型“EventTarget”上不存在属性“value” 我想断言target是一个HTMLInputElement 我错了吗?target是事件发生的元素。对于冒泡事件,这无法静
目标
:
<input
on:input={({ target: { value } }) => doSomething(value)}
/>
doSomething(值)}
/>
因为typescript现在正在抱怨:
类型“EventTarget”上不存在属性“value”
我想断言target
是一个HTMLInputElement
我错了吗?
target
是事件发生的元素。对于冒泡事件,这无法静态确定,因此,target
是防御性键入的(另请参阅)currentTarget
但是,正如您所期望的,它被键入为HTMLInputElement
<input
on:input={({ currentTarget: { value } }) => doSomething(value)}
/>
doSomething(值)}
/>
Svelte标记中当前不支持类型转换。解决方法是在脚本标记中声明一个函数并在那里进行转换
<script lang="ts">
function onInput(e: Event) {
const target = e.target as HTMLInputElement;
..
}
</script>
<input
on:input={onInput}
/>
函数onInput(e:事件){
const target=e.target作为HTMLInputElement;
..
}
目标
是事件起源的元素。对于冒泡事件,这无法静态确定,因此,target
是防御性键入的(另请参阅)currentTarget
但是,正如您所期望的,它被键入为HTMLInputElement
<input
on:input={({ currentTarget: { value } }) => doSomething(value)}
/>
doSomething(值)}
/>
Svelte标记中当前不支持类型转换。解决方法是在脚本标记中声明一个函数并在那里进行转换
<script lang="ts">
function onInput(e: Event) {
const target = e.target as HTMLInputElement;
..
}
</script>
<input
on:input={onInput}
/>
函数onInput(e:事件){
const target=e.target作为HTMLInputElement;
..
}