เหตุใด "MouseEvent" ในเครื่องจัดการเหตุการณ์ช่องทำเครื่องหมายจึงไม่ใช่แบบทั่วไป


92

ฉันมีองค์ประกอบช่องทำเครื่องหมาย TSX (JSX):

<input type="checkbox" name={i.toString()} onClick={this.handleCheckboxClick} />

ด้วยความช่วยเหลือของรหัส VS ฉันรู้ว่าประเภทพารามิเตอร์อินพุตของthis.handleCheckboxClickคือMouseEvent<HTMLInputElement>. ดังนั้นฉันจึงใช้มันด้วย:

private handleCheckboxClick(event: MouseEvent<HTMLInputElement>) {
    ...
}

จากนั้นฉันได้รับข้อผิดพลาดแจ้งว่า[ts] Type 'MouseEvent' is not generic.ดังที่แสดงในภาพด้านล่าง:

ป้อนคำอธิบายภาพที่นี่

เวอร์ชันของแพ็คเกจของฉัน:

"@types/react": "^15.0.29",
"@types/react-dom": "^15.5.0",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"typescript": "^2.3.4",

ทำไมถึงเป็นเช่นนั้น?

คำตอบ:


249

คุณอาจกำลังใช้ MouseEventDOM ลองใช้React.MouseEvent<HTMLInputElement>แทน


2
ไม่ได้ผลสำหรับฉันฉันได้รับ:type: "checkbox" onChange: (e: MouseEvent<HTMLInputElement>) => void; defaultChec...' is not assignable to type 'InputHTMLAttributes<HTMLInputElement>'
Kokodoko

@Kokodoko เคยแก้ปัญหานี้ไหม
SuperUberDuper


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.