【发布时间】:2021-10-27 10:40:31
【问题描述】:
当onClick 被触发时,按下的HTML 元素(即<svg> 元素)作为参数传递给handleClick(该参数称为“pressedElement”)。由于我已经为其分配了any 类型并且使用any 被认为是一种不好的做法,我想用另一种Typescript 类型替换any。我应该使用什么类型而不是使用any?
这是组件的代码:
import useScrollTrigger from '@material-ui/core/useScrollTrigger';
import Zoom from '@material-ui/core/Zoom';
import './Catalog.scss';
const ScrollTop = (props: any) => {
const { children, window } = props;
const trigger = useScrollTrigger({
target: window ? window() : undefined,
disableHysteresis: true,
threshold: 100,
});
const handleClick = (pressedElement: any) => {
const anchor = (pressedElement.ownerDocument || document).querySelector('#back-to-top-anchor');
if (anchor) {
anchor.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
};
return (
<Zoom in={trigger}>
<div
onClick={({ target }) => handleClick(target)}
role="presentation"
className="scrollTop"
>
{children}
</div>
</Zoom>
);
}
export default ScrollTop;
【问题讨论】:
-
我猜像
HTMLSVGElement。
标签: javascript reactjs typescript typescript-typings