面對TypeScript,堅持JS的理由是什麼?

趙鈺瑩發表於2018-05-07

  “前端工程師用 JavaScript,C#工程師用 TypeScript,Ruby工程師用 CoffeeScript,Java工程師用Dart。”你對這句話怎麼看呢?本文主要討論了JavaScript和TypeScript之間的恩怨情仇,看看在大規模開發的場景下到底誰更強?企業更側重於選擇哪一種?

  JavaScript雖說集程式設計師萬千寵愛於一身,但對於企業大規模開發很難管理。所以企業開發都選用什麼工具呢?TypeScript提供了一個有吸引力的選擇!眾所周知,TypeScript是JavaScript的擴充套件,但為什麼各大排行榜上JavaScript總是排名更靠前呢?

  面對強大的Type.,你還堅持.的理由是什麼?

  在最新一期的TIOBE排行榜中,JavaScript排名第6,而前十名根本沒有TypeScript的影子,那為什麼企業大規模開發都會選用TypeScript呢?

  對於越來越多的程式設計師來說,JavaScript是早已掌握了的技能,因此一直佔據著程式語言排行榜前十名的位置。但JavaScript從來都不是團隊構建大型複雜應用程式的首選,企業長期以來都喜歡Java和C#等強型別語言,但這些語言的虛擬機器在瀏覽器中從來沒有一個歸屬。作為JavaScript的延伸,TypeScript既彌補了JavaScript在大規模開發過程中的不足,又具備了適合各類瀏覽器的虛擬機器。

  正面交戰:Github熱度如何?

  作為前輩,JavaScript的Star數量確實遠高於TypeScript,但熱度確不及TypeScript,TypeScript是微軟的開源專案,其貢獻者絕大多數都是微軟的工程師,提交量達到20212,而JavaScript主要是Netscape和Mozilla基金會開源的,貢獻者絕大多數都是來自這兩大組織的成員,而提交量僅有1546份,可見TypeScript社群更為活躍、問題修復與反饋也十分及時。

  面對強大的Type.,你還堅持.的理由是什麼?

  面對強大的Type.,你還堅持.的理由是什麼?

  TypeScript優勢:簡單易用!

  對JavaScript有效的對TypeScript同樣有效,因此可以透過簡單地將.js的副檔名更改為.ts來使用TypeScript編譯器和TypeScript感知工具。

  TypeScript具備absolutelytyped.org收集型別定義,提供數百個JavaScript庫(包括jQuery,Angular和Bootstrap)的定義並描述這些庫的匯出介面。由於TypeScript可以在任何平臺上定位JavaScript虛擬機器,並且不僅提供編譯器,還提供一組支援智慧編碼的語言服務。

  JavaScript弱勢:靜態型別檢查, 程式碼重構和語言服務......

  如果程式設計師只需要寫兩三千行指令碼,那你可能用著JavaScript還樂在其中。如果程式設計師需要寫個數萬行指令碼,還用JavaScript恐怕要叫苦不迭了,JavaScript的缺點恐怕可以說上一籮筐。TypeScript在靜態型別檢查、程式碼重構和語言服務方面的優勢十分明顯,而這些正好是JavaScript的劣勢。

面對Type.,堅持JS的理由是什麼?

  除此之外,JavaScript在字串,數字和日期之間的隱式轉換使得難以視覺化流入和流出函式的物件型別。在團隊開發中,對程式碼進行註釋是極其重要的,如果你剛好負責一個底層庫的開發,不需要再單獨提交一份文件進行詳細解釋,TypeScript可以清楚記錄每一個物件的屬性,方法的引數等。JavaScript也可以做,但還是不夠,還是需要單獨寫一份文件才夠詳細。

  TypeScript優勢:測試開銷

  說完了開發自然就是測試,對於團隊開發而言,測試也是一筆不小的開銷,事無鉅細才能在市場上有立足之地。很多程式設計師或許都曾想過“編寫靜態型別輸入的測試的可行性”問題,TypeScript是基於ECMAScript 6標準的實現,它的測試可將程式作為一組模組傳播到多個檔案。TypeScript採用的這種機制是大規模開發的福音。當以標準方式宣告模組依賴關係時,程式設計師可以更容易地理解這些依賴關係,工具可以使這種理解自動化,程式碼重構風險較小。

  總結一句話:對於Javascript來說,TypeScript就像未來的自己!隨著技術的發展,JavaScript終會向著TypeScript的方向看齊,包括編輯器、各類庫和API都會與TypeScript有更棒的整合,雖然現在已經很棒了。

  所以,你的企業也在用TypeScript嗎?如果你還在用JavaScript,你堅持的理由是什麼呢?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2153994/,如需轉載,請註明出處,否則將追究法律責任。

相關文章