TypeScript :什么情況會用到泛型?

我們先來看個例子,這個場景我們經(jīng)常在開發(fā)的過程中會用到

import { useEffect, useState } from 'react'

export function useDebounce(initialValue: any, delay?: number): any {
  const [debounceValue, setDebounceValue] = useState(initialValue)

  useEffect(() => {
    let timer = setTimeout(() => {
      setDebounceValue(initialValue)
    }, delay)
    return () => {
      clearTimeout(timer)
    }
  }, [initialValue, delay])

  return debounceValue
}

看上面的代碼塊,如果我們是TS的新手,那么我們會問,此刻我們傳入的 initialValue 的類型應(yīng)該是什么?我們不知道它會傳入什么類型,所以大多數(shù)情況我們會給它一個 any ,最后它返回的 return debounceValue 也是any類型,這樣是非常不好的,我們無法推斷出 debounceValue 是什么類型?完全也失去了使用TypeScript的價值。

因此我們想問,我們?nèi)绾文軌蜃龅剑瑐魅氲?initialValue 是什么類型,那么我們返回的 debounceValue也是什么類型,此刻我們就可以通過 泛型來解決這個問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容