日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

老码农绝密:使用 TS(TypeScript) 的 10 大理由

發布時間:2023/11/27 生活经验 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 老码农绝密:使用 TS(TypeScript) 的 10 大理由 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近,小編讀了一篇名為《放棄 TypeScript 的 7 個非常好的理由》,這篇文章的閱讀量不低。里面有些觀點確實有趣,不過在這里我要向你介紹使用 TypeScript 的 10 個理由。

TypeScript 降低代碼出錯的風險

開發人員寫 BUG 是很自然的事情。幾乎有一半的時間,我們都是在查找程序出錯的原因。在 JavaScript 中,原因可能只是簡單如類型錯誤。例如,將數值賦值給字符串變量,這個操作在 JavaScript 中沒問題,但在 TypeScript 中會編譯失敗。JavaScript 開發人員已經被這種問題困擾很久了,甚至引入嚴格模式(Strict mode)來減少這種錯誤。

使用 TypeScript,上面的代碼是無法編譯的,不會出現在最終的代碼庫中。而使用 JavaScript 則不然。即便 TypeScript 無法避免運行時類型錯誤,但依然可以有效地降低這種風險。

快速失敗原則

在代碼可正常運行之前,TypeScript 引入了一個新的強制性步驟:將代碼轉換為 JavaScript。在編寫新代碼時,這個步驟每天也可能會失敗很多次。而非靜態類型的語言會將失敗和錯誤檢測延遲到運行時??煽疹愋蛯τ谌魏维F代語言都非常重要,它有助于擴展代碼。

Adrian Colyer 在 2017 年寫了一篇非常有趣的文章:量化 JavaScript 中可檢測的錯誤。在文章的結尾,你可以找到一個有趣的實驗結果,Eric 調查了 JavaScript 工程中公開的 400 個 BUG,通過使用 TypeScript 或者 Flow,可以有效捕獲其中的 59 個,而不會出現在生產環境中。注意,在本文中,我們考慮的只是減少錯誤代碼。

讓代碼有更豐富的信息/文檔

如今,在前端開發中,編寫可重用代碼和可重用組件已經跟玩似的。重新造輪子很容易出錯,而且成本太高。因此,最好使用現有的庫或代碼。TypeScript 在代碼中添加了很多信息,并強制執行此用法。輸出的 TypeScript 代碼包含更多相關的信息,如類型簽名等。而 JavaScript 代碼的說明信息就很少了,閱讀起來比較費勁。你要么需要以 JSDoc 的形式提供信息,要么以某種外部文檔的形式提供信息。當大量重用代碼時,則會降低開發效率。

當然,閱讀和編寫文檔仍然很重要,但是類型提示讓代碼更具可讀性。對于尚未完全了解您的代碼庫的人來說尤其如此。智能感知功能更適用于 Typescript,因為能獲取到類型簽名信息。

在短期內,使用 TypeScript 有時確實意味著需要打更多的字。另外,由于 TypeScript 將轉換為 JavaScript 并與 JavaScript 代碼庫混合使用,因此確實有時需要和它進行斗爭,并在某些地方將其關閉。但是從長遠來看,TypeScript 可以擴展,而 JavaScript 卻很難擴展。現在使用 TypeScript 能在將來幫到您的開發人員。

TypeScript 比 JavaScript 具有更多功能

TypeScript 的功能比 JavaScript 更多。顯然,靜態類型檢查是最主要的一個,但還有其它的。大多數 TypeScript 的特性(之前 JavaScript 未實現的)現在在 JavaScript 都已經實現了。但是 TypeScript 仍具有優勢,因為它的演進速度比 JavaScript 快。如接口、名稱空間、泛型、抽象類、數據修改器、可選、函數重載、裝飾器、utils 類型和 readonly 關鍵字等。本文并不打算涵蓋所有這些功能,只簡單舉個只讀的 TypeScript util

好的重構和工具

重構 TypeScript 代碼比使用非類型化語言要容易得多。我目睹了許多 JavaScript 開發人員使用全局搜索和替代來重命名變量,而最終導致單元測試失敗的情況。使用 TypeScript,您可以在代碼中獲得其他語義。使用接口或類時,編譯器知道對象將包含哪些字段?,F在,重命名接口、類或枚舉的字段比以往更加容易。只需使用 VSCode 或 IntelliJ 的重構功能,即可見證奇跡的出現。

背景強大

一項廣泛使用的技術有幾乎無限的資源可以來學習它。TypeScript 就是這樣,因為它擁有龐大的社區。

而如果您正在考慮使用 Angular,則別無選擇,只能選擇 TypeScript。 從 Angular 2 開始,Google 完全采用 TypeScript 作為其主要語言。如果你不使用 Angular,而是將 React 與 TypeScript 一起使用,則將極大地降低將來開發 Angular 項目的復雜性。

解決 JavaScript 中靜態類型問題的替代方案

長期以來,JavaScript 的一個問題就是沒有靜態類型。在過去,這個問題困擾著開發者,但是項目還是要進行。而在 JavaScript 的發展過程中,也一直在嘗試添加靜態類型。

例如,React 為其組件發布了 PropTypes,以減少開發階段的類型錯誤 – 而 TypeScript 完全涵蓋了這一功能。 Facebook 還有其自己的靜態類型檢查庫(Flow),該庫基本上與 TypeScript 的原理是一樣的。2014 年,Google 也提出了一種基于 JavaScript 的腳本語言,該語言擴展了 TypeScript,稱為 AtScript。

TypeScript 的其它優勢

TypeScript 由 Microsoft 編寫和維護。這是科技巨頭花時間認真維護的一個項目,使該語言更具有安全感。

TypeScript 不僅在 MIT 許可下是完全開源的,而且該項目還提供了透明的路線圖和提交特性請求的功能。

TypeScript 編譯器完全使用 TypeScript 編寫,因此一旦您對該語言有信心,您甚至可以為代碼庫做出貢獻并擴展其功能!

結論

TypeScript 提高了代碼的可讀性,無疑能減少錯誤,或者至少可以更快地捕獲這些錯誤 – 即使在編寫或運行任何單元測試之前。JavaScript 肯定是朝著正確的方向發展,但是靜態類型語言的優勢尚未完全實現。當可選的靜態類型將來成為 JavaScript 的一部分時,使用 TypeScript 無疑是完美的知識儲備。

最后,小編分類整理了許多java進階學習材料和BAT面試給熱愛IT行業的你,如果需要資料的請轉發此文章后再私聊小編回復【java】就能領取2019年java進階學習資料和BAT面試題以及《Effective Java》(第3版)電子版書籍。也可以加群:712263501領取海量學習資料進行學習。

總結

以上是生活随笔為你收集整理的老码农绝密:使用 TS(TypeScript) 的 10 大理由的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。