![](/img/trans.png)
[英]Is it possible to use a constructor function as a type of an argument of another function in TypeScript?
[英]What typescript type use for function argument?
當onClick
被觸發時,被按下的 HTML 元素(它是一個<svg>
元素)作為參數傳遞給handleClick
(該參數稱為“pressedElement”)。 由於我已將any
類型分配給它,並且使用any
被認為是一種不好的做法,因此我想將any
替換為另一種 Typescript 類型。 我應該使用什么類型而不是使用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;
onClick 事件的第一個參數是 React.FocusEvent 和類型為 EventTarget & HTMLInputElement 的解構目標。
我已經在這個 codeandbox 上復制了您的代碼,您可以看到這些類型有效,將鼠標懸停在它們上會顯示類型https://codesandbox.io/s/snowy-cloud-jlqwx?file=/src/Component.tsx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.