【问题标题】:TypeScript error: Property 'target' does not exist on type 'Object' for event handlerTypeScript 错误:事件处理程序的“对象”类型上不存在属性“目标”
【发布时间】:2020-10-27 23:23:15
【问题描述】:

我正在将 React 文件转换为 typescript,从 .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

【问题讨论】:

标签: typescript


【解决方案1】:

e: React.YOUR_EVENT<YOUR_ELEMENT>

对于输入上的“onChange”事件:

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

干燥选项:

输入事件

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

【讨论】:

  • 不错。如果我有三个处理程序,有什么关于干燥的建议吗?
  • 干涸是什么意思?
  • OP 要求您提供重构建议(D不要R重复Y我们自己)。但这完全取决于实际的代码/设置,对不相关的问题发表评论毫无意义......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 2023-02-21
  • 2021-06-19
  • 2020-08-07
  • 1970-01-01
  • 2017-02-26
  • 2019-04-12
相关资源
最近更新 更多