自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我為什么對 TypeScript 由黑轉粉?

開發(fā) 前端
一名曾僅使用 JavaScript 的開發(fā)者解釋自己為何從反對 TypeScript 到轉變?yōu)?TypeScript 粉絲。

一名曾僅使用 JavaScript 的開發(fā)者解釋自己為何從反對 TypeScript 到轉變?yōu)?TypeScript 粉絲。

Chirag Swadia 自稱曾是 Anti-TypeScript 的 JavaScript 開發(fā)者。談及反對的原因,他以前一直認為給函數(shù)/變量添加類型以滿足 TypeScript 編譯器的要求屬于過度工程化 (Over-Engineering) 的設計。因為這并沒有提供任何有意義的便利之處,而且降低了開發(fā)效率——Chirag 表示自己最初總會遇到一些難以理解的編譯錯誤,需要花費時間來處理。他也因此感受到了挫敗感,并開始討厭 TypeScript。

另一方面的原因是,Chirag 難以理解 TypeScript 中像泛型這樣的高級概念。他覺得自己身處 Java 世界,每行代碼都有很強的類型化,讓人不知所措。在 Chirag 開始學習 TypeScript 時,他甚至會害怕下面這種簡單的代碼。

 

▲ TypeScript 泛型示例

 

因此,由于上述原因,雖然 Chirag 通過觀看教程或閱讀書籍來學習 TypeScript,但從未參與過任何使用 TypeScript 編寫的企業(yè)項目。

變化出現(xiàn)在 Chirag 擔任新職務之后,此時項目的技術棧為 TypeScript,他所負責的應用都是 TypeScript 編寫(只有遺留下來的代碼是 JavaScript 代碼),因此他不得不寫起了 TypeScript 代碼。正如 Chirag 所預料的那樣,起初這對于他來說是一個巨大的挑戰(zhàn),他對 TypeScript 的恨意也因此越來越大,但最終在幾個月后,他發(fā)現(xiàn)了 TypeScript 的好處以及其他人喜歡 TypeScript 而不是 JavaScript 的原因。

[[384920]]

Chirag 也列出了自己成為 TypeScript 粉絲的三大理由。

不可能狀態(tài)無法恢復并進行詳盡的檢查

Chirag 表示這是他喜歡 TypeScript 的主要原因。他引用了在 React 應用中利用 TypeScript 來避免不可能狀態(tài)的例子,此例子描述了交通信號燈系統(tǒng)處理不可能狀態(tài)的案例(點此查看)。

可盡早發(fā)現(xiàn)錯誤

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

他認為使用 TypeScript 可以將一切都保持為最初定義的狀態(tài),如果將變量聲明為布爾型,則它將始終是布爾型,并且不會變成數(shù)字。這提升了代碼按照最初預期方式運行的可能性。簡而言之,代碼是可預測的。

具有豐富的 IDE 支持并易于重構

Chirag 認為,類型相關的信息可以使 IDE 更好地發(fā)揮其用處,例如獲得代碼跳轉和自動補全等功能,IDE 會提供準確的建議。此外,在輸入代碼時會獲得即時反饋,因為編輯器會在錯誤發(fā)生時立即標記出錯誤,包括與類型相關的錯誤。這些功能可幫助開發(fā)者寫出可維護的代碼,并帶來巨大的生產力提升。

至于重構,Chirag 舉了一個例子,比如引入一個新狀態(tài)或者移除應用程序正在使用的不必要狀態(tài),如果此時忘記更新部分引用,TypeScript 編譯器就會進行警告。他還表示重構后的應用程序將以重構前的方式工作,所以不用擔心兼容方面的問題。

本文轉自OSCHINA

本文標題:我為什么對 TypeScript 由黑轉粉?

本文地址:https://www.oschina.net/news/131695/anti-ts-developer-became-a-ts-fan

責任編輯:未麗燕 來源: 開源中國
相關推薦

2017-05-15 16:12:55

后端編程GUI

2023-01-10 08:17:41

WebAPI框架

2015-04-16 16:35:47

2012-02-28 09:11:51

語言Lua

2020-07-17 14:06:36

Scrum敏捷團隊

2012-04-04 22:07:12

Android

2022-03-14 08:33:09

TypeScriptJavaScript前端

2023-11-30 09:00:00

TypeScript開發(fā)

2013-10-22 15:18:19

2014-01-09 09:24:40

2014-01-17 14:39:18

12306 搶票

2015-03-02 15:13:52

Apple Watch

2012-06-18 14:51:09

Python

2015-06-04 11:22:22

前端程序員

2023-07-23 17:19:34

人工智能系統(tǒng)

2014-09-22 10:06:07

2019-09-17 15:30:13

Java編程語言

2012-11-14 20:55:07

容錯服務器選型CIO

2021-08-14 09:04:58

TypeScriptJavaScript開發(fā)

2022-03-03 23:30:27

TypeScrip開發(fā)前端
點贊
收藏

51CTO技術棧公眾號