前端項目到底需不需要 TypeScript ?
點擊關注公眾號,回復”抽獎”
Hello,諸位前端工程師,今天由我來從一個 CRUD 開發(fā)工程師的角度聊一聊這個 “敏感” 的話題。
有一個現(xiàn)象
就是你不難發(fā)現(xiàn),大多數(shù)能力比你強的前端工程師,要么在鼓勵大家用 TS,要么就是自己的開源項目采用了 TS。
而這種現(xiàn)象通常會在技術領域會傳播下來,普及給所有程序員。就像 Vue/React 等框架都有大廠開始大量使用后,再慢慢普及到小廠,最后幾乎所有程序員都被普及到了(畢竟你不會就找不到工作了)。
而大廠嘗試使用一門技術,并且成功落地之后并沒有拋棄它,而是在更多的項目中使用,這種時候基本上就可以說這門技術的優(yōu)點是比較明顯的,被普及的概率也就非常大了。
正好,TS 就符合這個現(xiàn)象和普及規(guī)律。
也就是說,按照這個規(guī)律我們其實可以得出一個簡單的結(jié)論:前端項目中使用 TS 是優(yōu)大于弊的,并且以后 TS 會被普及
有一個誤區(qū)
這種評論見多了,起初我真的很想回復一些什么來反駁反駁,后來想一想,其實就是他們當前太菜了...
因為我實在是想不明白 TS 降低開發(fā)效率是怎么得出來的?
-
如果你說你玩上了類型體操,開發(fā)效率降低了,那我想說的是,能力不夠是可以不玩類型體操的,能夠玩上類型體操的也不會吐出這么低級的槽,CRUD 也完全不需要類型體操 -
如果你說你初始化一個項目,進行各種 TS 配置和導包,出現(xiàn)大量報錯不知所措,那說明你還不具備從零搭建一個TS 項目的能力,本質(zhì)上還是你 TS 以及生態(tài)不熟悉,那你可以選擇去開源社區(qū)找一個模板,等使用熟悉后再試著自己搭建,不要一開始就磨滅了自己的興致 -
如果你覺得你定義一個 const a = 1,也要寫成const a: number = 1是降低了開發(fā)效率,那其實是你還不習慣罷了,畢竟我剛學 TS 的第一天也有這種心理
或者這樣,假設你們說的都是事實,就是 TS 降低了開發(fā)效率。但是 TS 沒有優(yōu)點嗎?TS 的優(yōu)點就沒有一個能打贏 “降低開發(fā)效率” 這個假設嗎?
我覺得應該是有的吧,說幾個 CRUD 時就能體會到的:
-
一個變量原本是 string 類型,但是在某一處給這個變量賦值的時候,賦值成了 number 類型,你開發(fā)時發(fā)現(xiàn)程序無論如何都跑不對,定位半天發(fā)現(xiàn)原來是類型錯誤 -
還是這個變量,你賦值錯了,但是由于對應功能不常用,上線前沒有測試出來,導致出現(xiàn)了嚴重生產(chǎn)環(huán)境問題,你即將被追責 -
后期維護時,不用再到處翻找上下文就能立即知道變量類型 -
幾乎不會再出現(xiàn) ReferenceError:“x” is not defined
就這三個比較常見的點,哪一個帶來的問題不能打贏 “降低開發(fā)效率”?就難道 ReferenceError:“x” is not defined 時你不需要花費時間定位問題嗎?更別說出現(xiàn)生成環(huán)境問題了
有需求就有市場
隨意截取了其他 TS 文章下的兩則評論,類似的不支持 TS 的評論還有很多,幾乎每一篇相關文章下面都會見到。
但是事實是,從 TS 出現(xiàn),到現(xiàn)在的高熱度和高采用,足以說明它在市場上是有足夠多的需求的,并不會因為所謂的 “TS 沒有 JS 靈活” 或 “JS 是弱類型,比 TS 更優(yōu)勢” 等觀點左右它的需求量。
意思就是你必須使用 TS 嗎?
那也當然不是,你可以繼續(xù)使用 JS,就像現(xiàn)在你依舊可以使用 JQ。
但...
你真的有不學習、不使用 TS 的資本嗎?將好像 JQ 時代過渡到 Vue/React 時代的時候一樣,多少人嚷著 JQ 更優(yōu)秀、市場占有率更高,操作 DOM 多么的靈活,Vue 等框架心智負擔多么的大,學 Vue 前必須先學習 JQ 等等... 現(xiàn)在在看看呢?你還能再招聘 JD 上看見只要求你會 JQ 的崗位嗎?
所以說啊,哪怕只是為了你的飯碗,你也應該去學一學 TS、用一用 TS。
不要做低級程序員
優(yōu)秀的程序員總是在技術普及之前就研究它的思想,總結(jié)它的優(yōu)缺點,嘗試將其落地。
大眾程序員總是在普及的時候才開始學。
而最低級的程序員只有等自己找不到工作了才會被迫開始學。
善意的提醒
隨著 Vue3 的普及,開源社區(qū)優(yōu)秀的模板都是擁抱的 TS 的(React 那就更早了),而大多數(shù)公司的項目都是基于這些模板進行開發(fā)的。如果不出意外的話,招聘 JD 上會出現(xiàn)越來越多的 TS 字樣。
還是那句話,哪怕只是為了自己飯碗。
