我收到此错误
错误:(17, 35) TS2339:类型“EventTarget & Element”上不存在属性“checked”。
但这绝对是不可能的错误,因为 React 文档说checked
确实存在于target
的复选框(https://reactjs.org/docs/forms.html#handling-multiple-inputs https://reactjs.org/docs/forms.html#handling-multiple-inputs)
这是我的代码。到底是怎么回事,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:类型“EventTarget”上不存在属性“checked”。
这是一个修复。您必须指定元素的类型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>
)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)