TypeScript错误:事件处理程序的类型“对象”上不存在属性“目标”

发布时间:2020-07-07 16:22

我正在将React文件转换为打字稿,从.js更改为.tsx

我有事件处理程序,例如

function handleTitle(e) {
  setTitle(e.target.value);
}

我改为

function handleTitle(e:object) {
  setTitle(e.target.value);
}

但随着我的改变

TypeScript error: Property 'target' does not exist on type 'object'

我尝试了e:objecte:arraye:anye:string

回答1

e: React.YOUR_EVENT<YOUR_ELEMENT>

对于输入的“ onChange”事件:

function handleTitle(e: React.ChangeEvent<HTMLInputElement>) {
  setTitle(e.target.value);
}

DRY选项:

输入事件

type OnChangeEvent = React.ChangeEvent<HTMLInputElement>

function handleTitle(e: OnChangeEvent) {
  setTitle(e.target.value);
}

键入函数(参数和返回类型)

type HandleTitleType = (e: React.ChangeEvent<HTMLInputElement>) => void

const handleTitle: HandleTitleType = (e) => {
  setTitle(e.target.value);
}