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