日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
7個(gè)不使用TypeScript的理由,你認(rèn)同嗎?

TypeScript很受大眾喜愛。因?yàn)樗敖鉀Q”了JS的許多問題,是JS的“超集”。它不僅能輕松找出代碼錯(cuò)誤,還能使其易于閱讀。

清豐網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,清豐網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為清豐數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的清豐做網(wǎng)站的公司定做!

對(duì),沒錯(cuò),使用TypeScript的理由太多了。

反其道而行之,今天小芯就要說7個(gè)不使用TypeScript的理由。

1. 它不能解決問題

據(jù)說TypeScript可以解決JavaScript的問題,但事實(shí)并非如此。動(dòng)態(tài)類型在JavaScript中從來都不是問題,但是許多其他問題,例如NaN===NaN為false、分號(hào)為可選或非可選、換行符將對(duì)象定義更改為作用域、語(yǔ)法糖代替OOP等,確實(shí)是問題。TypeScript并沒有解決這些問題,但是引入了另一個(gè)標(biāo)準(zhǔn),進(jìn)一步分化了JS社區(qū)。

即使假設(shè)JS中缺少類型是一個(gè)問題,TS也不能解決這個(gè)問題。你知道什么語(yǔ)言可以解決嗎?Java、C、C#等編譯語(yǔ)言可以。它們可以在編譯和運(yùn)行時(shí)安全地保證強(qiáng)類型。翻譯語(yǔ)言就是不能做到這一點(diǎn)。

2. 雖然開源,但很局限

使用TypeScript的許多原因表明它是開源的。沒錯(cuò),TS編譯器是在MIT許可下發(fā)布的。但它仍由微軟(Microsoft)控制,微軟是一家壟斷性的大公司,其開源技術(shù)的進(jìn)步不過是一種營(yíng)銷手段。不要把開源和民主混為一談:微軟仍然可以用TS做任何你想做的事情,你只是來看看。另一方面,JS由一個(gè)國(guó)際委員會(huì)管理,未經(jīng)共同體批準(zhǔn),任何事情都不會(huì)改變。

來源:Pexels

3. 危險(xiǎn)

所以,如果TypeScript添加類型定義并在編譯時(shí)進(jìn)行檢查,會(huì)有什么風(fēng)險(xiǎn)呢?以及IDE集成將警告你任何類型不匹配?

正因?yàn)槿绱?,TypeScript只在編譯時(shí)檢查類型,并且只檢查可用的類型。任何網(wǎng)絡(luò)調(diào)用、系統(tǒng)庫(kù)、特定于平臺(tái)的API和非類型化的第三方庫(kù)都無(wú)法與TypeScript通信。當(dāng)你習(xí)慣于檢查類型,而不必完全理解代碼和平臺(tái)時(shí),就會(huì)出現(xiàn)錯(cuò)誤和bug。

使用JS,對(duì)類型沒有任何假設(shè),并且檢查變量的具體值,以確保它符合期望?;蛘?,如果你不關(guān)心它在這種特殊情況下的類型,就無(wú)需檢查。在TS中,你依賴編譯器執(zhí)行此操作,但它只能檢查這么多。你可以把這兩種方法結(jié)合起來,但那又有什么意義呢?如果花時(shí)間編寫定義,然后再編寫代碼以確保運(yùn)行期間維護(hù)這些定義,那么為什么首先要選用它們呢?

4. 凌亂

另一個(gè)悖論是:本應(yīng)為代碼庫(kù)增加清晰性和可讀性的語(yǔ)言反而令其晦澀難懂。為了展示我的意思,請(qǐng)看以下在有效開源庫(kù)中找到的一些示例:

 
 
  1. // TODO: dothismoreelegantly 
  2. ;((currentReducerasunknown) asReducer< 
  3.   NewState, 
  4.   NewActions 
  5. >) =nextReducer 

viewrawcreateStore.ts hostedwithby GitHub

這一行來自Redux庫(kù),這4行所做的就是將nextReducer分配給currentReducer。

 
 
  1. // HACK: SinceTypeScriptinheritsstaticpropertiestoo, wehaveto 
  2. // fightagainstTypeScriptheresoSubjectcanhaveadifferentstaticcreatesignature 
  3. /** 
  4.  * CreatesanewcoldObservablebycallingtheObservableconstructor 
  5.  * @statictrue 
  6.  * @ownerObservable 
  7.  * @methodcreate 
  8.  * @param {Function} subscribe? thesubscriberfunctiontobepassedtotheObservableconstructor 
  9.  * @return {Observable} anewcoldobservable 
  10.  * @nocollapse 
  11.  * @deprecatedusenewObservable() instead 
  12.  */ 
  13. staticcreate: Function= (subscribe?: (subscriber: Subscriber) =>TeardownLogic) => { 
  14.   returnnewObservable(subscribe); 

viewrawObservable.ts hostedwithby GitHub

下一個(gè)例子來自RxJS庫(kù)。我不知道你的情況,但如果我要和一個(gè)應(yīng)該幫助我的工具戰(zhàn)斗,我認(rèn)為這不是一個(gè)好工具。

5. 不是超集,而是子集

TypeScript是編譯成JavaScript的語(yǔ)言,根據(jù)定義它不能是超集。它限制了使用JavaScript所能做的事情,并且在提供虛假的內(nèi)心平靜的同時(shí)掩蓋了JavaScript強(qiáng)大的一面。如果你真的想成為一個(gè)偉大的開發(fā)者,不要沉溺于一個(gè)安慰的謊言,試著去理解JavaScript的真正力量和它的靈活性。

6. 有更多的特點(diǎn)…

這個(gè)原因已經(jīng)不再成立。誠(chéng)然,當(dāng)TS在2012年首次引入時(shí),它具有類等特性,但在JS中仍然不可用。但是JS從那時(shí)起已經(jīng)走了很長(zhǎng)的路,現(xiàn)在TS正在努力跟上。如果JS中缺少任何東西,那么就需要一個(gè)babel插件來完成。

7. 大公司會(huì)選擇它…

我不敢相信有人會(huì)認(rèn)為這是一個(gè)原因。大公司也使用遺留的代碼庫(kù),進(jìn)行稅務(wù)欺詐,歧視婦女。為什么他們突然使用TypeScript是一個(gè)很好的例子呢?

來源:Pexels

TypeScript的確有許多好用之處,但不是什么情況都適用,小芯也不是什么“杠精”,只是希望大家可以客觀看待~


當(dāng)前名稱:7個(gè)不使用TypeScript的理由,你認(rèn)同嗎?
URL網(wǎng)址:http://www.dlmjj.cn/article/dpgggss.html