Svelte 表单:提交类型 TypeScript

Pin*_*ney 8 typescript svelte

我正在尝试用 Svelte TypeScript 构建一个简单的表单。

我的 on:submit 看起来像这样:<form on:submit={onSubmit}>,我的 onSubmit 函数定义为:

const onSubmit = (event: HTMLFormElement) => {
    event.preventDefault();
    dispatch("addPerson", person);
    person = {
      name: "",
      isOwed: 0,
    };
  };
Run Code Online (Sandbox Code Playgroud)

通过这段代码,我得到了 TypeScript 问题:

类型“(event: HTMLFormElement) => void”不可分配给类型“EventHandler<Event, HTMLFormElement>”。参数“event”和“event”的类型不兼容。

我知道传递给 onSubmit 的事件具有 type EventHandler<Event, HTMLFormElement>,并且我的函数只期望 HTMLFormElement,但我无法期望整个 EventHandler 对象。我怎样才能实现这个目标?

Zac*_*ten 11

事件类型是SubmitEvent.

function handleSubmit(e: SubmitEvent) {
 const formData = new FormData(e.target as HTMLFormElement)
}
Run Code Online (Sandbox Code Playgroud)
function handleSubmit(e: SubmitEvent) {
 const formData = new FormData(e.target as HTMLFormElement)
}
Run Code Online (Sandbox Code Playgroud)