簡體   English   中英

什么打字稿類型用於函數參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM