使用 Preact + Typescript 的类型安全事件处理程序
Posted
技术标签:
【中文标题】使用 Preact + Typescript 的类型安全事件处理程序【英文标题】:Typesafe event handlers with Preact + Typescript 【发布时间】:2020-01-02 19:02:27 【问题描述】:我正在使用 Preact 编写一个简单的组件,它使用 onChange
处理程序来处理 <input/>
元素:
function Example(props: )
return <input onChange=(e) =>
const value = e.currentTarget;
console.log(value);
/>
上面的代码会产生以下错误:
Property 'value' does not exist on type 'EventTarget'.ts(2339)
最快的解决方法是进行类型转换:
const el = (e.currentTarget as htmlInputElement).value;
但我不想将类型转换添加到应用程序以进行这种常见的操作。
在不使用类型转换或any
类型的情况下编写表单事件处理程序的正确方法是什么?
环境信息:
"strict": true
在 tsconfig.json 中
preact@8.5.2
没有安装外部类型。使用包默认值。
【问题讨论】:
你能指定你使用的打字稿配置,还有哪些@types? @TalgatSaribayev 我已经更新了这个问题。谢谢。 【参考方案1】:免责声明:我在 Preact 工作。
这是我们当前的 Preact 类型中的一个错误。这些与preact
npm 包本身一起分发。这是我们的跟踪器中与此相关的一个问题:https://github.com/preactjs/preact/issues/1930
【讨论】:
以上是关于使用 Preact + Typescript 的类型安全事件处理程序的主要内容,如果未能解决你的问题,请参考以下文章
在 Preact 和 typescript 中使用 web 组件
最新的 preact 和 typescript 模块传递了错误的类型
preact-cli/babel/typescript - 让 Symbol.iterator 和 [...spread] 正常工作