【发布时间】:2022-06-24 17:01:06
【问题描述】:
当我尝试将此 js 转换为打字稿时,我遇到了一些错误。 第一个用于事件
它说:参数“事件”隐含地具有“任何”类型
我可以为事件添加任何类型,但想知道要使用的正确数据类型,而不是通用类型。
另一行用于以下行:
if (!ref.current?.contains(event.target)) {
错误:
Property 'contains' does not exist on type 'never'
任何帮助将不胜感激!
React.useEffect(() => {
const handleOutsideClick = (event) => {
if (window.innerWidth < 1024) {
if (!ref.current?.contains(event.target)) {
if (!open) return;
setOpen(false);
}
}
};
window.addEventListener("click", handleOutsideClick);
return () => window.removeEventListener("click", handleOutsideClick);
}, [open, ref]);
【问题讨论】:
-
要回答关于 ref 的部分,我们需要查看创建
ref的代码,以及您将其传递到的元素类型。 -
谢谢。它说: const ref: React.MutableRefObject
-
你将它传递给什么类型的元素?例如,如果您使用
<div ref={ref}>,那么我的问题的答案是“div”。 -
{children} -
好的......它从那里去哪里?如果我不知道您将它传递到哪个 dom 元素中,我无法告诉您它应该是什么类型。
标签: typescript