溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

面對(duì)TypeScript,堅(jiān)持JS的理由是什么?

發(fā)布時(shí)間:2020-08-11 12:23:29 來(lái)源:ITPUB博客 閱讀:253 作者:趙鈺瑩 欄目:web開(kāi)發(fā)

  “前端工程師用 JavaScript,C#工程師用 TypeScript,Ruby工程師用 CoffeeScript,Java工程師用Dart?!蹦銓?duì)這句話怎么看呢?本文主要討論了JavaScript和TypeScript之間的恩怨情仇,看看在大規(guī)模開(kāi)發(fā)的場(chǎng)景下到底誰(shuí)更強(qiáng)?企業(yè)更側(cè)重于選擇哪一種?

  JavaScript雖說(shuō)集程序員萬(wàn)千寵愛(ài)于一身,但對(duì)于企業(yè)大規(guī)模開(kāi)發(fā)很難管理。所以企業(yè)開(kāi)發(fā)都選用什么工具呢?TypeScript提供了一個(gè)有吸引力的選擇!眾所周知,TypeScript是JavaScript的擴(kuò)展,但為什么各大排行榜上JavaScript總是排名更靠前呢?

  面對(duì)TypeScript,堅(jiān)持JS的理由是什么?

  在最新一期的TIOBE排行榜中,JavaScript排名第6,而前十名根本沒(méi)有TypeScript的影子,那為什么企業(yè)大規(guī)模開(kāi)發(fā)都會(huì)選用TypeScript呢?

  對(duì)于越來(lái)越多的程序員來(lái)說(shuō),JavaScript是早已掌握了的技能,因此一直占據(jù)著編程語(yǔ)言排行榜前十名的位置。但JavaScript從來(lái)都不是團(tuán)隊(duì)構(gòu)建大型復(fù)雜應(yīng)用程序的首選,企業(yè)長(zhǎng)期以來(lái)都喜歡Java和C#等強(qiáng)類(lèi)型語(yǔ)言,但這些語(yǔ)言的虛擬機(jī)在瀏覽器中從來(lái)沒(méi)有一個(gè)歸屬。作為JavaScript的延伸,TypeScript既彌補(bǔ)了JavaScript在大規(guī)模開(kāi)發(fā)過(guò)程中的不足,又具備了適合各類(lèi)瀏覽器的虛擬機(jī)。

  正面交戰(zhàn):Github熱度如何?

  作為前輩,JavaScript的Star數(shù)量確實(shí)遠(yuǎn)高于TypeScript,但熱度確不及TypeScript,TypeScript是微軟的開(kāi)源項(xiàng)目,其貢獻(xiàn)者絕大多數(shù)都是微軟的工程師,提交量達(dá)到20212,而JavaScript主要是Netscape和Mozilla基金會(huì)開(kāi)源的,貢獻(xiàn)者絕大多數(shù)都是來(lái)自這兩大組織的成員,而提交量?jī)H有1546份,可見(jiàn)TypeScript社區(qū)更為活躍、問(wèn)題修復(fù)與反饋也十分及時(shí)。

  面對(duì)TypeScript,堅(jiān)持JS的理由是什么?

  面對(duì)TypeScript,堅(jiān)持JS的理由是什么?

  TypeScript優(yōu)勢(shì):簡(jiǎn)單易用!

  對(duì)JavaScript有效的對(duì)TypeScript同樣有效,因此可以通過(guò)簡(jiǎn)單地將.js的文件擴(kuò)展名更改為.ts來(lái)使用TypeScript編譯器和TypeScript感知工具。

  TypeScript具備absolutelytyped.org收集類(lèi)型定義,提供數(shù)百個(gè)JavaScript庫(kù)(包括jQuery,Angular和Bootstrap)的定義并描述這些庫(kù)的導(dǎo)出接口。由于TypeScript可以在任何平臺(tái)上定位JavaScript虛擬機(jī),并且不僅提供編譯器,還提供一組支持智能編碼的語(yǔ)言服務(wù)。

  JavaScript弱勢(shì):靜態(tài)類(lèi)型檢查, 代碼重構(gòu)和語(yǔ)言服務(wù)......

  如果程序員只需要寫(xiě)兩三千行腳本,那你可能用著JavaScript還樂(lè)在其中。如果程序員需要寫(xiě)個(gè)數(shù)萬(wàn)行腳本,還用JavaScript恐怕要叫苦不迭了,JavaScript的缺點(diǎn)恐怕可以說(shuō)上一籮筐。TypeScript在靜態(tài)類(lèi)型檢查、代碼重構(gòu)和語(yǔ)言服務(wù)方面的優(yōu)勢(shì)十分明顯,而這些正好是JavaScript的劣勢(shì)。

面對(duì)TypeScript,堅(jiān)持JS的理由是什么?

  除此之外,JavaScript在字符串,數(shù)字和日期之間的隱式轉(zhuǎn)換使得難以可視化流入和流出函數(shù)的對(duì)象類(lèi)型。在團(tuán)隊(duì)開(kāi)發(fā)中,對(duì)代碼進(jìn)行注釋是極其重要的,如果你剛好負(fù)責(zé)一個(gè)底層庫(kù)的開(kāi)發(fā),不需要再單獨(dú)提交一份文檔進(jìn)行詳細(xì)解釋?zhuān)琓ypeScript可以清楚記錄每一個(gè)對(duì)象的屬性,方法的參數(shù)等。JavaScript也可以做,但還是不夠,還是需要單獨(dú)寫(xiě)一份文檔才夠詳細(xì)。

  TypeScript優(yōu)勢(shì):測(cè)試開(kāi)銷(xiāo)

  說(shuō)完了開(kāi)發(fā)自然就是測(cè)試,對(duì)于團(tuán)隊(duì)開(kāi)發(fā)而言,測(cè)試也是一筆不小的開(kāi)銷(xiāo),事無(wú)巨細(xì)才能在市場(chǎng)上有立足之地。很多程序員或許都曾想過(guò)“編寫(xiě)靜態(tài)類(lèi)型輸入的測(cè)試的可行性”問(wèn)題,TypeScript是基于ECMAScript 6標(biāo)準(zhǔn)的實(shí)現(xiàn),它的測(cè)試可將程序作為一組模塊傳播到多個(gè)文件。TypeScript采用的這種機(jī)制是大規(guī)模開(kāi)發(fā)的福音。當(dāng)以標(biāo)準(zhǔn)方式聲明模塊依賴(lài)關(guān)系時(shí),程序員可以更容易地理解這些依賴(lài)關(guān)系,工具可以使這種理解自動(dòng)化,代碼重構(gòu)風(fēng)險(xiǎn)較小。

  總結(jié)一句話:對(duì)于Javascript來(lái)說(shuō),TypeScript就像未來(lái)的自己!隨著技術(shù)的發(fā)展,JavaScript終會(huì)向著TypeScript的方向看齊,包括編輯器、各類(lèi)庫(kù)和API都會(huì)與TypeScript有更棒的集成,雖然現(xiàn)在已經(jīng)很棒了。

  所以,你的企業(yè)也在用TypeScript嗎?如果你還在用JavaScript,你堅(jiān)持的理由是什么呢?

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI