成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Typescript,我永遠不會回到JavaScript了

開發 后端 新聞
JavaScript可能是現代網絡的事實上的語言,但長期以來,它也是我選擇腳本編寫的語言。 使用Python進行編碼很有趣,但是如果我有一些自動化的東西,我會去用node。 我選擇的服務器端語言曾經是C#,但如今它雖然功能強大,但感覺卻很笨拙。

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

[[315832]]

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

閃電般的談話已成為我推薦給前端開發人員的推薦閱讀清單(查看清單還是消耗清單?)的一部分,還有喬納森·克里默的" 23世紀JavaScript架構"。 盡管自ES6問世以來,上一篇文章中的某些內容似乎是多余的,但是它對于解釋JavaScript所需的思路還有很長的路要走,這需要從"常規"編程語言(如果有的話)轉變思維方式。 僅那篇文章是我5年前開始自己的JavaScript Odyssey的大部分原因。

那么,為什么我現在揚言要離開,再也不回來了? 答案很簡單。 打字稿。

什么是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時,我討厭不得不去閱讀函數定義以弄清楚如何使用它。 我不知道它返回什么(如果有的話)或它接受什么樣的參數。 我可能知道參數的數量及其名稱,但這并不總是足夠的: 

  1. 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編譯器將等待

這就是為什么我永不回頭。

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2023-08-25 13:34:02

JavascriptWikipediaSlack

2019-07-23 09:34:27

Oracle程序員數據庫

2009-04-17 15:24:20

人生撤銷耍賴

2020-06-01 08:35:36

編程語言JavaPython

2022-03-27 22:07:35

元宇宙虛擬人IBM

2021-10-06 16:21:32

類型對象Typescript

2021-06-17 11:21:16

云計算數據中心網絡

2021-10-26 06:34:12

系統設計服務

2025-02-18 15:17:59

2020-04-08 17:53:40

TypeScriptJavaScript代碼

2021-04-04 23:15:23

數字貨幣加密貨幣

2010-01-12 18:27:58

C++代碼

2020-02-20 10:50:30

多數人不會真正成功

2018-01-10 15:03:27

前端TypeScriptJavaScript

2012-10-08 09:15:57

JavaScriptJSTypeScript

2019-08-30 08:54:05

TypeScriptJavaScript語言

2022-02-28 21:15:42

火狐火狐瀏覽器瀏覽器

2014-12-11 10:01:09

程序員

2016-04-28 09:36:44

人才教育/華三

2022-02-23 14:43:52

程序員猝死996
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人久操| 成人 在线 | 一区二区播放 | 国产美女一区 | a在线视频 | 91精品国产一区二区三区动漫 | 超碰最新在线 | 日本电影网站 | 欧美日韩在线一区二区三区 | 黄色片视频 | 久久精品视频播放 | 在线国产一区 | 亚洲综合色站 | 国产成人精品免高潮在线观看 | 国产精品日韩一区 | 奇米超碰在线 | 51ⅴ精品国产91久久久久久 | 在线中文字幕日韩 | 黄网站涩免费蜜桃网站 | 国产精品一区二区三区四区五区 | 精品国产久 | 成人午夜高清 | 亚洲精品久久久一区二区三区 | 中文字幕视频在线观看 | 欧美一区在线视频 | 国产高清在线 | av一区二区三区四区 | 91精品国产99久久 | 亚洲成人av在线播放 | 午夜精品一区二区三区免费视频 | 一区二区三区国产好的精 | 欧美日韩免费视频 | 99久久婷婷国产亚洲终合精品 | 91精品国产91久久久久青草 | 蜜桃传媒一区二区 | 韩日一区| 亚洲成人精品 | 久久久精品黄色 | 久久av一区二区 | 91五月天 | 毛片.com |