为什么复选框事件处理程序中的`MouseEvent`不是通用的?

时间:2017-06-26 16:19:16

标签: reactjs typescript events types jsx

我有一个复选框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.如下图所示:

enter image description here

我的包的版本:

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

为什么?

3 个答案:

答案 0 :(得分:131)

您可能正在使用DOM MouseEvent。请尝试使用React.MouseEvent<HTMLInputElement>

答案 1 :(得分:7)

要使用React MouseEvent,只需确保添加:

import { MouseEvent } from 'react';

答案 2 :(得分:1)

您可以使用SyntheticEvent代替MouseEvent