<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          前端項(xiàng)目到底需不需要 TypeScript ?

          共 2328字,需瀏覽 5分鐘

           ·

          2023-09-13 21:35

          點(diǎn)擊關(guān)注公眾號(hào),回復(fù)”抽獎(jiǎng)” 

          Hello,諸位前端工程師,今天由我來(lái)從一個(gè) CRUD 開發(fā)工程師的角度聊一聊這個(gè) “敏感” 的話題。

          有一個(gè)現(xiàn)象

          就是你不難發(fā)現(xiàn),大多數(shù)能力比你強(qiáng)的前端工程師,要么在鼓勵(lì)大家用 TS,要么就是自己的開源項(xiàng)目采用了 TS。

          而這種現(xiàn)象通常會(huì)在技術(shù)領(lǐng)域會(huì)傳播下來(lái),普及給所有程序員。就像 Vue/React 等框架都有大廠開始大量使用后,再慢慢普及到小廠,最后幾乎所有程序員都被普及到了(畢竟你不會(huì)就找不到工作了)。

          而大廠嘗試使用一門技術(shù),并且成功落地之后并沒有拋棄它,而是在更多的項(xiàng)目中使用,這種時(shí)候基本上就可以說(shuō)這門技術(shù)的優(yōu)點(diǎn)是比較明顯的,被普及的概率也就非常大了。

          正好,TS 就符合這個(gè)現(xiàn)象和普及規(guī)律。

          也就是說(shuō),按照這個(gè)規(guī)律我們其實(shí)可以得出一個(gè)簡(jiǎn)單的結(jié)論:前端項(xiàng)目中使用 TS 是優(yōu)大于弊的,并且以后 TS 會(huì)被普及

          有一個(gè)誤區(qū)




          這種評(píng)論見多了,起初我真的很想回復(fù)一些什么來(lái)反駁反駁,后來(lái)想一想,其實(shí)就是他們當(dāng)前太菜了...

          因?yàn)槲覍?shí)在是想不明白 TS 降低開發(fā)效率是怎么得出來(lái)的?

          1. 如果你說(shuō)你玩上了類型體操,開發(fā)效率降低了,那我想說(shuō)的是,能力不夠是可以不玩類型體操的,能夠玩上類型體操的也不會(huì)吐出這么低級(jí)的槽,CRUD 也完全不需要類型體操
          2. 如果你說(shuō)你初始化一個(gè)項(xiàng)目,進(jìn)行各種 TS 配置和導(dǎo)包,出現(xiàn)大量報(bào)錯(cuò)不知所措,那說(shuō)明你還不具備從零搭建一個(gè)TS 項(xiàng)目的能力,本質(zhì)上還是你 TS 以及生態(tài)不熟悉,那你可以選擇去開源社區(qū)找一個(gè)模板,等使用熟悉后再試著自己搭建,不要一開始就磨滅了自己的興致
          3. 如果你覺得你定義一個(gè) const a = 1,也要寫成 const a: number = 1 是降低了開發(fā)效率,那其實(shí)是你還不習(xí)慣罷了,畢竟我剛學(xué) TS 的第一天也有這種心理

          或者這樣,假設(shè)你們說(shuō)的都是事實(shí),就是 TS 降低了開發(fā)效率。但是 TS 沒有優(yōu)點(diǎn)嗎?TS 的優(yōu)點(diǎn)就沒有一個(gè)能打贏 “降低開發(fā)效率” 這個(gè)假設(shè)嗎?

          我覺得應(yīng)該是有的吧,說(shuō)幾個(gè) CRUD 時(shí)就能體會(huì)到的:

          1. 一個(gè)變量原本是 string 類型,但是在某一處給這個(gè)變量賦值的時(shí)候,賦值成了 number 類型,你開發(fā)時(shí)發(fā)現(xiàn)程序無(wú)論如何都跑不對(duì),定位半天發(fā)現(xiàn)原來(lái)是類型錯(cuò)誤
          2. 還是這個(gè)變量,你賦值錯(cuò)了,但是由于對(duì)應(yīng)功能不常用,上線前沒有測(cè)試出來(lái),導(dǎo)致出現(xiàn)了嚴(yán)重生產(chǎn)環(huán)境問題,你即將被追責(zé)
          3. 后期維護(hù)時(shí),不用再到處翻找上下文就能立即知道變量類型
          4. 幾乎不會(huì)再出現(xiàn) ReferenceError:“x” is not defined

          就這三個(gè)比較常見的點(diǎn),哪一個(gè)帶來(lái)的問題不能打贏 “降低開發(fā)效率”?就難道 ReferenceError:“x” is not defined 時(shí)你不需要花費(fèi)時(shí)間定位問題嗎?更別說(shuō)出現(xiàn)生成環(huán)境問題了

          有需求就有市場(chǎng)



          隨意截取了其他 TS 文章下的兩則評(píng)論,類似的不支持 TS 的評(píng)論還有很多,幾乎每一篇相關(guān)文章下面都會(huì)見到。

          但是事實(shí)是,從 TS 出現(xiàn),到現(xiàn)在的高熱度和高采用,足以說(shuō)明它在市場(chǎng)上是有足夠多的需求的,并不會(huì)因?yàn)樗^的 “TS 沒有 JS 靈活” 或 “JS 是弱類型,比 TS 更優(yōu)勢(shì)” 等觀點(diǎn)左右它的需求量。

          意思就是你必須使用 TS 嗎?

          那也當(dāng)然不是,你可以繼續(xù)使用 JS,就像現(xiàn)在你依舊可以使用 JQ。

          但...

          你真的有不學(xué)習(xí)、不使用 TS 的資本嗎?將好像 JQ 時(shí)代過渡到 Vue/React 時(shí)代的時(shí)候一樣,多少人嚷著 JQ 更優(yōu)秀、市場(chǎng)占有率更高,操作 DOM 多么的靈活,Vue 等框架心智負(fù)擔(dān)多么的大,學(xué) Vue 前必須先學(xué)習(xí) JQ 等等... 現(xiàn)在在看看呢?你還能再招聘 JD 上看見只要求你會(huì) JQ 的崗位嗎?

          所以說(shuō)啊,哪怕只是為了你的飯碗,你也應(yīng)該去學(xué)一學(xué) TS、用一用 TS。

          不要做低級(jí)程序員

          優(yōu)秀的程序員總是在技術(shù)普及之前就研究它的思想,總結(jié)它的優(yōu)缺點(diǎn),嘗試將其落地。

          大眾程序員總是在普及的時(shí)候才開始學(xué)。

          而最低級(jí)的程序員只有等自己找不到工作了才會(huì)被迫開始學(xué)。

          善意的提醒

          隨著 Vue3 的普及,開源社區(qū)優(yōu)秀的模板都是擁抱的 TS 的(React 那就更早了),而大多數(shù)公司的項(xiàng)目都是基于這些模板進(jìn)行開發(fā)的。如果不出意外的話,招聘 JD 上會(huì)出現(xiàn)越來(lái)越多的 TS 字樣。

          還是那句話,哪怕只是為了自己飯碗。


          如果文章對(duì)你有幫助的話歡迎
          「關(guān)注+點(diǎn)贊+收藏」

          瀏覽 573
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天堂熟女 | 成人无码小说 | 欧美日韩一区二区A片 | 在线黄色亚洲视频 | 91爱爱·co m |