gpt4 book ai didi

reactjs - TypeScript:属性 'checked' 在类型 'EventTarget & Element' 上不存在。为什么它不存在?

转载 作者:行者123 更新时间:2023-12-03 23:35:57 28 4
gpt4 key购买 nike

我收到此错误

Error:(17, 35) TS2339: Property 'checked' does not exist on type 'EventTarget & Element'.


但这绝对是不可能的错误,因为 React 文档说 checked确实存在于 target复选框 ( https://reactjs.org/docs/forms.html#handling-multiple-inputs )
enter image description here
这是我的代码。有什么问题让 TS 炸了?
// I specify a type for event. It must have `checked` property.
onToggle = (ev: React.ChangeEvent) => {
console.log('[ev]', ev.target.checked); // <= TS throws here
}

render() {
return (
<div>
<input type="checkbox" name="switch" id="switch" onChange={ev => this.onToggle(ev)} checked={this.state.on}/>
</div>
)
}
替代错误消息:

TS2339: Property 'checked' does not exist on type 'EventTarget'.

最佳答案

这是一个修复。您必须指定 ChangeEvent 的元素类型

  onToggle = (ev: React.ChangeEvent<HTMLInputElement>) => {
// onToggle = (ev: React.ChangeEvent) => {
console.log('[ev]', ev.target.checked); // <= TS throws here
}

render() {
return (
<div>
<input type="checkbox" name="switch" id="switch" onChange={ev => this.onToggle(ev)} checked={this.state.on}/>
</div>
)
}

关于reactjs - TypeScript:属性 'checked' 在类型 'EventTarget & Element' 上不存在。为什么它不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57030813/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com