react+Typescript定時器


今天遇到個小坑,react+Typescript下的定時器也是有很大學問的,遇到問題就及時記錄下來分享一波

 

一堆報錯:

 

查證定時器算是什么類型,簡單在瀏覽器控制台打印得知  setInterval  類型定義為  number 

 

 

改完后還是報錯:有點納悶怎么  setInterval方法  類型是 “Timeout” 而不是 “number”

 

 

直接查看類型推導,VSCode很方便的功能

 

 然后跳到聲明文件查看得知  setInterval方法  是屬於NodeJs的方法,類型為 NodeJS.Timeout

后來查證得知react默認使用了global.d.ts的類型推導所以才會用

 

 接下來研究下NodeJS.Timeout是什么東東

http://nodejs.cn/api/timers.html#timers_setimmediate_callback_args

  直接去node官網網查到node也定義了同名setInterval方法,所以類型為NodeJS.Timeout

 

既然直接寫setInterval()是用node的定時器,那么我們只需要  window.setInterval()  這樣子調用就能用瀏覽器自帶定時器

好奇再看看  window.setInterval()  的類型推導,果然是  number

 

最終代碼樣子:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM