真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

什么是Typescript以及其優(yōu)缺點(diǎn)是什么

什么是Typescript以及其優(yōu)缺點(diǎn)是什么,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)公司專注于劍閣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),購(gòu)物商城網(wǎng)站建設(shè)。劍閣網(wǎng)站建設(shè)公司,為劍閣等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

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

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

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

什么是Typescript?

我假設(shè)您聽說過Typescript,但如果沒有,請(qǐng)嘗試總結(jié)一下:Typescript是強(qiáng)類型的Javascript。  它添加了您期望強(qiáng)類型語言的功能,并且需要一個(gè)編譯步驟(從技術(shù)上來說是"翻譯")才能將Typescript轉(zhuǎn)換為JavaScript。  這是因?yàn)闉g覽器不了解Typescript。 從技術(shù)上講,Typescript不會(huì)添加任何新的運(yùn)行時(shí)功能,而是為開發(fā)人員添加功能。

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

它不應(yīng)該是火箭科學(xué),但有時(shí)會(huì)有這種感覺,這就是Typescript新手有時(shí)會(huì)掙扎并回到瀏覽器中運(yùn)行的JavaScript受歡迎的原因之一。

好處

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

我假設(shè)您知道這些好處是什么,但是如果您不知道,請(qǐng)?jiān)试S我總結(jié)一下:

  • Typescript的編譯步驟意味著您可以及早發(fā)現(xiàn)問題,而不必等待運(yùn)行時(shí)失敗。

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

  • 當(dāng)ECMAScript(驅(qū)動(dòng)JavaScript的標(biāo)準(zhǔn))中提出新功能時(shí),TypeScript可以盡早采用它們,從而使您始終處于最前沿。

但實(shí)際上,主要好處是Typescript使您的代碼能夠以JavaScript無法做到的方式進(jìn)行自我描述。  當(dāng)我是項(xiàng)目的唯一開發(fā)人員時(shí),JavaScript并不是很糟糕,因?yàn)槲铱梢詫⑺惺虑槎祭斡浽谛?,并且我擁有完美的記憶,?duì)嗎? 錯(cuò)誤。  即使是唯一的開發(fā)人員,我編寫的代碼也容易失憶。 如今,當(dāng)我編寫普通的JavaScript時(shí),我討厭不得不去閱讀函數(shù)定義以弄清楚如何使用它。  我不知道它返回什么(如果有的話)或它接受什么樣的參數(shù)。 我可能知道參數(shù)的數(shù)量及其名稱,但這并不總是足夠的:

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?  }}

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

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

這就是TypeScript的美。 這并不會(huì)迫使您成為一名優(yōu)秀的開發(fā)人員。 但這為您提供了實(shí)現(xiàn)此目標(biāo)的工具。

缺點(diǎn)

有缺點(diǎn)嗎? 當(dāng)然有。

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

  • 由于您必須編譯代碼,因此每次更新和每次測(cè)試運(yùn)行都將花費(fèi)一點(diǎn)時(shí)間。 但是,我們正在談?wù)搸酌腌姟? 我使用Typescript節(jié)省的時(shí)間遠(yuǎn)遠(yuǎn)超過了編譯它所花費(fèi)的時(shí)間

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

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

未來

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

看完上述內(nèi)容,你們掌握什么是Typescript以及其優(yōu)缺點(diǎn)是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享文章:什么是Typescript以及其優(yōu)缺點(diǎn)是什么
標(biāo)題鏈接:http://weahome.cn/article/iejjps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部