91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Typescript以及其優缺點是什么

發布時間:2021-09-30 17:53:49 來源:億速云 閱讀:163 作者:柒染 欄目:編程語言

什么是Typescript以及其優缺點是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

JavaScript可能是現代網絡的事實上的語言,但長期以來,它也是我選擇腳本編寫的語言。  使用Python進行編碼很有趣,但是如果我有一些自動化的東西,我會去用node。 我選擇的服務器端語言曾經是C#,但如今它雖然功能強大,但感覺卻很笨拙。  我曾經天真的將Node描述為"泛濫成災",它滿足了我編寫的所有內容的需求。  我甚至可以用多種不同的方式用JavaScript編寫Android和iOS應用程序。

并不是說它是適用于一切的完美工具,但是多年來我一直為我服務。 我一直在諷刺地承認在家庭主力馬網上出現的缺陷,包括加里·伯恩哈特(Gary  Bernhardt)嘲諷的" Wat?"。 閃電般的談話讓我仍在思考。 如果您以前從未看過它,請立即停止閱讀并繼續觀看。 您可以稍后感謝我。

閃電般的談話已成為我推薦給前端開發人員的推薦閱讀清單(查看清單還是消耗清單?)的一部分,還有喬納森·克里默的" 23世紀JavaScript架構"。  

什么是Typescript?

我假設您聽說過Typescript,但如果沒有,請嘗試總結一下:Typescript是強類型的Javascript。  它添加了您期望強類型語言的功能,并且需要一個編譯步驟(從技術上來說是"翻譯")才能將Typescript轉換為JavaScript。  這是因為瀏覽器不了解Typescript。 從技術上講,Typescript不會添加任何新的運行時功能,而是為開發人員添加功能。

我聽說有人形容Typescript是喜歡它還是討厭它,但是我還沒有和任何嘗試過并討厭它的人交談。  我已經與許多猶豫不決的人進行了交談-大約在2016年中,我就是其中之一。 但是,我聽到的同行對Typescript的最嚴厲批評是,這是一種額外的學習工具。  不僅是語言,而且還有構建過程。  但是,大多數現代的Web應用程序在其構建鏈中至少有一個鏈接以Babel的形式保留給JavaScript,Babel是一種允許較新的JavaScript在較舊的瀏覽器上運行的工具。  將TypeScript添加到該管道中不應該是火箭科學,尤其是因為Babel自v7起就支持Typescript編譯。

它不應該是火箭科學,但有時會有這種感覺,這就是Typescript新手有時會掙扎并回到瀏覽器中運行的JavaScript受歡迎的原因之一。

好處

但是正如我所說,我從未聽過有人采用Typescript并為此感到后悔。 好處遠勝于困難,尤其是在使用Angular CLI或Create React  App的時代-兩者都使您可以在幾分鐘之內開始使用啟用了Typescript的新項目。

我假設您知道這些好處是什么,但是如果您不知道,請允許我總結一下:

  • Typescript的編譯步驟意味著您可以及早發現問題,而不必等待運行時失敗。

  • 您的IDE現在可以在編譯步驟更早的時候提示您。 想象一下,當您引用一個不存在的變量或使用錯誤的參數調用函數時,您的IDE會告訴您! 真正的革命!  (當然,因為"真正的"編程語言已經享受了多年,所以我一直在調侃。)編輯:我對此強調不夠。  我最近將一個舊項目從JavaScript轉換為Typescript,以了解我從別人那里繼承來的代碼庫的復雜性。  這是一個循序漸進的過程,在此期間,團隊繼續提供新功能,但是我們遇到了一些示例代碼,這些示例中我們錯誤地使用了第三方庫。  也許API發生了更改,或者有人誤讀了文檔,但是我們傳遞了某些配置變量,這些變量絕對沒有任何作用。 Typescript立即告訴我們,我們刪除了有問題的代碼。  顯然,它是不需要的,并且非常容易誤導。

  • 當ECMAScript(驅動JavaScript的標準)中提出新功能時,TypeScript可以盡早采用它們,從而使您始終處于最前沿。

但實際上,主要好處是Typescript使您的代碼能夠以JavaScript無法做到的方式進行自我描述。  當我是項目的唯一開發人員時,JavaScript并不是很糟糕,因為我可以將所有事情都牢記在心,并且我擁有完美的記憶,對嗎? 錯誤。  即使是唯一的開發人員,我編寫的代碼也容易失憶。 如今,當我編寫普通的JavaScript時,我討厭不得不去閱讀函數定義以弄清楚如何使用它。  我不知道它返回什么(如果有的話)或它接受什么樣的參數。 我可能知道參數的數量及其名稱,但這并不總是足夠的:

function doTheThing() {  let error = false;    // About a million lines of code that might cause an error    return error;}function consumeTheThing() {  let error = doTheThing();  if (error) {    // What do I do with the error now?  }}

這就是我的意思。 "錯誤"是布爾值嗎? 當我看到第2行時,它看起來肯定是這樣,但是那到" doTheThing"末尾之間的一百萬行代碼又如何呢?  它可以是字符串,對象或知道什么的人。

您可能會說這種靈活性是一種資產。 可能是這樣,但更常見的是它是一個陷阱,誘使您采用簡單的方式,這會在您和您的同伴之間引起許多微小的挫敗感。  曾經在別人的代碼中間,覺得自己在迷宮中嗎? 那就是別人的代碼。 您可以用JavaScript編寫"好的"代碼,但是很少有人鼓勵您這樣做。

這就是TypeScript的美。 這并不會迫使您成為一名優秀的開發人員。 但這為您提供了實現此目標的工具。

缺點

有缺點嗎? 當然有。

  • 從字義上來說,更多的打字。 您可以更快地穿破鍵盤(對于使用蝶形鍵盤的人來說,這可能是個問題)。  沒什么大不了的,但是一些JavaScript開發人員討厭必須用每個新函數或變量寫出類型。  您不必這樣做,但是如果您不使用類型,為什么要使用Typescript?

  • 由于您必須編譯代碼,因此每次更新和每次測試運行都將花費一點時間。 但是,我們正在談論幾秒鐘。  我使用Typescript節省的時間遠遠超過了編譯它所花費的時間

  • 有時,構建項目的復雜性可能是一個真正的痛苦。 這是真實的-如果您不熟悉構建工具,則設置新項目可能會令人沮喪。  在短期內,我的建議是找到一個入門項目以助您一臂之力—如果您正考慮使用那些框架,那么上述Angular CLI和Create React App在這方面非常有用。  長期? 花時間學習工具-tsc,Babel,WebPack和所有這些好東西。 如果您使用的是節點,請嘗試ts-node。  如果您使用的是Mocha,請嘗試ts-mocha。 有一些簡單的捷徑可以幫助您入門。

有點像是我的觀點是單方面的-我并沒有在缺點和優點上投入太多精力  我想,出于同樣的原因,我不會花很多時間在每頓飯上都吃麥當勞的好處-這樣做的好處有限(不必再做飯了……我想就是這樣)。

未來

我認為Typescript不會在短期內取代JavaScript-了解后者對于使前者發揮作用至關重要。  而且我們不會看到Typescript在任何瀏覽器中本機運行。 它是一個預處理器,就像之前的CoffeeScript一樣。  Typescript和Coffescript之間的區別在于后者是對其所基于語言的根本改變。 Typescript是自然的演變。  這不僅使學習變得更容易,而且使將JavaScript項目轉換為Typescript的過程更加繁瑣。 首先將* .js重命名為* .ts。  現在,您有了Typescript項目! 然后,您可以一次開始采用語言功能。 我不能保證這會很容易,但是它將告訴您有關JavaScript從未有過的事情。  當您開始下一個項目時,Typescript編譯器將等待

看完上述內容,你們掌握什么是Typescript以及其優缺點是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西昌市| 崇信县| 河津市| 瑞金市| 石柱| 佛山市| 威海市| 灵寿县| 清新县| 上栗县| 雷波县| 乌鲁木齐县| 赤城县| 郧西县| 岚皋县| 丰镇市| 华坪县| 丹凤县| 山阳县| 顺义区| 鄂尔多斯市| 胶南市| 济阳县| 新沂市| 高碑店市| 昌平区| 拉萨市| 高雄县| 徐闻县| 沾化县| 三河市| 山阳县| 张家港市| 新和县| 于都县| 东城区| 滨州市| 涿鹿县| 蒙城县| 广宁县| 西畴县|