久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

為什么我對(duì) TypeScript 黑轉(zhuǎn)粉,?一個(gè) JS 開(kāi)發(fā)者的深情自白

 風(fēng)聲之家 2021-03-13

前端技術(shù)優(yōu)選 6天前

以下文章來(lái)源于掘金開(kāi)發(fā)者社區(qū) ,,作者前沿技術(shù)瞭望官


在這篇博客文章中,我將會(huì)講述我是如何從一名 TypeScript 黑粉的開(kāi)發(fā)者轉(zhuǎn)變到如今不想回到原生 JavaScript 世界的開(kāi)發(fā)者的旅程 ??,,也許我的想法可以幫助和我?guī)啄昵耙粯泳秤龅娜藗儭?/span>

為什么我曾經(jīng)是 TypeScript 的黑粉,?

我一直覺(jué)得給函數(shù)和變量設(shè)定類型,滿足 TypeScript 編譯器的各種檢查是一種過(guò)度的設(shè)計(jì),,并且沒(méi)有任何意義上的好處,。而且這個(gè)設(shè)計(jì)也讓我編寫(xiě)程序的速度很慢,也是因?yàn)槲医?jīng)常會(huì)遇到一些作為一名新人所難以理解的編譯錯(cuò)誤,。我撓頭三千尺,,白發(fā)飄落,試圖去找出問(wèn)題所在,,也同時(shí)增生了一絲惆悵與挫敗,。我開(kāi)始討厭 TypeScript 這門(mén)語(yǔ)言了。

另一個(gè)原因是 TypeScript 中諸如泛型之類的概念我一開(kāi)始覺(jué)得很難理解,。我開(kāi)始覺(jué)得自己又深陷 Java 世界那般的泥潭,,似乎每句代碼的輸入都是強(qiáng)類型并且令我極度厭煩的。當(dāng)我開(kāi)始學(xué)習(xí) TypeScript 時(shí),,即使像下面這樣的簡(jiǎn)單代碼也足以讓我感到恐懼,。

圖片

TypeScript 泛型示例

由于上述的原因,即使我通過(guò)觀看一些在線的教程或是嘗試去閱讀書(shū)籍來(lái)學(xué)習(xí) TypeScript,,我也從未主導(dǎo)或參與過(guò)任何使用 TypeScript 編寫(xiě)的企業(yè)應(yīng)用程序的開(kāi)發(fā)之中,。實(shí)際上,我過(guò)去常常選擇 JavaScript 而不是 TypeScript(如果可以選擇)去完成家庭作業(yè)這一公司面試過(guò)程的一部分 ??,。

但是,,當(dāng)我轉(zhuǎn)任現(xiàn)職時(shí),我失去了使用 JavaScript 的權(quán)利,!因?yàn)槲覍⒁幚淼乃袘?yīng)用程序都是用 TypeScript 編寫(xiě)的(JavaScript 部分都是些舊代碼),。我對(duì) TypeScript 的仇恨,與日俱增,!但在幾個(gè)月后,,我終于明白了為什么會(huì)有人更喜歡 TypeScript,而不是喜歡 JavaScript 的原因,,明白了使用 TypeScript 的好處和一些激勵(lì)我去嘗試使用的的理由,。這些內(nèi)容我將在下面的部分中列出:

我成為 TypeScript 粉絲的三大原因

避免無(wú)效狀態(tài)的出現(xiàn) & 擁有詳盡的檢查

這就是我喜歡 TypeScript 的主要原因,。如果你想了解更多這個(gè)概念的信息,我建議你看下面的視頻 —— 雖說(shuō)它說(shuō)的是 Elm 語(yǔ)言,,但該概念也適用于 TypeScript 語(yǔ)言,。

視頻地址:https:///IcgmSRJHu_8

如果你想查看一些有關(guān)如何在 React 應(yīng)用程序中利用 TypeScript 來(lái)避免程序出現(xiàn)無(wú)效狀態(tài)的示例,我建議你去閱讀一下下面的博客文章:

  1. 交通信號(hào)燈系統(tǒng)是如何處理無(wú)效狀態(tài)的現(xiàn)實(shí)示例 ??
  2. 帶有加載中,、已加載和加載錯(cuò)誤狀態(tài)的 React 組件 ??

及早發(fā)現(xiàn)錯(cuò)誤

在使用 JavaScript 時(shí),,我多次遇到過(guò)由于在前端沒(méi)有進(jìn)行類型檢查而在生產(chǎn)環(huán)境發(fā)現(xiàn) bug 的情況。這些 bug 本可以被避免,,并且可以在編譯時(shí)被 TypeScript 編譯器發(fā)現(xiàn),,這樣可以節(jié)省研發(fā)和 QA 的工作周期。

使用 TypeScript,,一切都保持最初定義的方式,。如果將變量聲明為布爾型,則它將始終是布爾型,,并且不會(huì)變成數(shù)字,。這增加了代碼按照最初預(yù)期的方式工作的可能性。簡(jiǎn)而言之,,代碼是可預(yù)測(cè)的,!

豐富的 IDE 支持 & 易于重構(gòu)

集成開(kāi)發(fā)環(huán)境(IDE)讓有關(guān)類型的信息更加有用 —— 我們可以在 IDE 中使用上代碼導(dǎo)航和自動(dòng)完成等功能,并借助這些準(zhǔn)確的建議修復(fù)錯(cuò)誤,。我們還可以在輸入代碼時(shí)獲得反饋:編輯器會(huì)在錯(cuò)誤發(fā)生時(shí)立即標(biāo)記出錯(cuò)誤,,包括與類型相關(guān)的錯(cuò)誤。這些功能可幫助開(kāi)發(fā)者寫(xiě)出可維護(hù)的代碼,,并帶來(lái)巨大的生產(chǎn)力提升 ??,。

關(guān)于重構(gòu),比如引入一個(gè)新?tīng)顟B(tài)或者移除應(yīng)用程序正在使用的不需要的狀態(tài),,如果在過(guò)程中我們忘記了要去更新部分引用,,TypeScript 編譯器就會(huì)進(jìn)行警告。重構(gòu)后的應(yīng)用程序?qū)⑾裰貥?gòu)之前一樣工作,,不用擔(dān)心兼容問(wèn)題。這能讓你對(duì)重構(gòu)充滿信心,。

結(jié)論

總而言之,,使用 TypeScript 有許多的好處(如果你還沒(méi)有這樣做的話),而以上的幾點(diǎn)就是我的主要?jiǎng)恿?,也是因?yàn)檫@些動(dòng)力,,我對(duì) TypeScript 黑轉(zhuǎn)粉了。

如果你是 TypeScript 的初學(xué)者或想提高你的知識(shí),,那么我可以推薦一些書(shū):

  1. TypeScript 50課
  2. 使用 TypeScript

讓我們一起干杯! ??

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多