Typescript 如何在输入元素中使用这种形式的内联分解将此目标强制转换为:使用Svelte的输入操作?

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是事件发生的元素。对于冒泡事件,这无法静

我不知道如何在这里以Svelte 3的形式使用这种形式的内联解构来投射这个
目标

<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;
..
}