我在学习 react ,看到给一个 div 添加 onMouseDown 事件时,
这个事件本身的声明是:onMouseDown?: MouseEventHandler<T> | undefined;
写它的实现类时为
const handleMouseDown = (event:React.MouseEvent<HTMLDivElement,MouseEvent>) => {
}
event 的类型为 MouseEvent ,这个是可以看代码看出来的,但是里面的泛型HTMLDivElement
,我这上哪猜去,,,
1
thinkershare 357 天前
为什么需要猜了,HTML 的 DIV 元素的接口类型就是 HTMLDivElement 。
|
2
ragnaroks 357 天前
另外,type MouseEventHandler<T> = (event:MouseEvent<T>)=>void
|
3
molvqingtai 357 天前
你还可以直接写 tag 名称
import React from "react"; const onChange: React.ComponentProps<"input">["onChange"] = (e) => { console.log(e); }; <input onChange={onChange} />; |
4
molvqingtai 357 天前
如果不确定那种 DOM 触发的事件,可以使用 SyntheticEvent
|
6
Al0rid4l 357 天前
因为他默认你一看这名字就知道这是 Web API 的接口, 所以
https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement 其他 DOM API/Web API 都在 MDN 查就完事了 |