這篇文章主要為大家展示了“為什么不使用TypeScript”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“為什么不使用TypeScript”這篇文章吧。
站在用戶的角度思考問題,與客戶深入溝通,找到白朗網(wǎng)站設(shè)計(jì)與白朗網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋白朗地區(qū)。
有風(fēng)險(xiǎn)
哇。如果TypeScript添加類型定義并在編譯時(shí)檢查它們,那會有什么風(fēng)險(xiǎn)?IDE集成還會警告您任何類型不匹配的信息嗎?正因?yàn)槿绱?。TypeScript僅在編譯時(shí)檢查類型,并且僅檢查可用的類型。任何網(wǎng)絡(luò)調(diào)用,系統(tǒng)庫,特定于平臺的API和無類型的第三方庫都無法與TypeScript通信。當(dāng)您習(xí)慣檢查類型并不必完全了解代碼和平臺時(shí),錯(cuò)誤和錯(cuò)誤就會顯現(xiàn)出來。
使用JS,您無需對類型做任何假設(shè),并且可以檢查變量的具體值以確保其符合您的期望?;蛘?,如果您在這種情況下不關(guān)心其類型,則不必。在TS中,您依靠編譯器為您完成此任務(wù),但是它只能進(jìn)行很多檢查。您可以將這兩種方式結(jié)合起來,那又有什么意義呢?如果您要花時(shí)間編寫定義,然后花時(shí)間編寫代碼以確保在運(yùn)行時(shí)維護(hù)這些定義,那么為什么首先要使用它們?
太亂了
另一個(gè)悖論:本應(yīng)為代碼庫帶來清晰度和可讀性的語言反而使它模糊。為了說明我的意思,請查看一些我在流行的開源庫中找到的示例:
// TODO: do this more elegantly ;((currentReducer as unknown) as Reducer< NewState, NewActions >) = nextReducer
這是來自Redux庫的,所有這4行代碼都將nextReducer分配給currentReducer。
// HACK: Since TypeScript inherits static properties too, we have to // fight against TypeScript here so Subject can have a different static create signature /** * Creates a new cold Observable by calling the Observable constructor * @static true * @owner Observable * @method create * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor * @return {Observable} a new cold observable * @nocollapse * @deprecated use new Observable() instead */ static create: Function = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => { return new Observable<T>(subscribe); }
下一個(gè)示例來自RxJS庫。我不了解您,但是如果我必須使用一種可以幫助我的工具,那么我認(rèn)為這不是一個(gè)好工具。
它不能解決問題
據(jù)說TypeScript可以解決JavaScript的問題。但事實(shí)并非如此。動態(tài)類型化從來都不是JavaScript中的問題,但是許多其他陷阱,例如NaN === NaN為false,分號為可選或非可選,換行符將對象定義更改為作用域,使用語法糖代替OOP確實(shí)是問題。TypeScript并沒有解決這些問題,而是引入了另一個(gè)標(biāo)準(zhǔn),進(jìn)一步分化了JS社區(qū)。
即使假設(shè)JS中缺少鍵入是一個(gè)問題,TS也無法解決。你知道嗎Java,C,C#和其他編譯語言。他們可以安全地在編譯時(shí)和運(yùn)行時(shí)保證強(qiáng)類型??谧g語言無法做到這一點(diǎn)。
它不是超集,而是子集
TypeScript是可以編譯為JavaScript的東西,根據(jù)定義它不能是超集。它限制了您可以使用JavaScript進(jìn)行的操作,并掩蓋了它的強(qiáng)項(xiàng),同時(shí)提供了假的安全。如果您真的想成為一名優(yōu)秀的開發(fā)人員,請不要為安慰自己而撒謊,而是嘗試了解JavaScript的真正功能及其靈活性。
它是開源的,僅此而已
使用TypeScript的許多原因都表明它是開源的。沒錯(cuò),TS編譯器是在MIT許可下分發(fā)的。但是它仍然由微軟(一家壟斷性公司)控制,它的開源進(jìn)步不過是行銷之舉。不要將開源與民主相混淆:Microsoft仍然可以自由地使用TS做任何您想做的事情,而且您就在這里觀看。另一方面,JS受國際委員會的管理,未經(jīng)社區(qū)批準(zhǔn)不會更改任何內(nèi)容。
但是大公司使用它
我不敢相信有人認(rèn)為這是一個(gè)原因。大公司還使用舊版代碼庫,進(jìn)行稅務(wù)欺詐并歧視婦女。為什么突然之間使用TypeScript就是一個(gè)很好的例子?
但是它具有更多功能
不再。的確,當(dāng)TS在2012年首次推出時(shí),它具有諸如類之類的功能,但在JS中仍然不可用。但是從那時(shí)起,JS已經(jīng)走了很長一段路,現(xiàn)在TS努力跟上。如果JS中缺少任何內(nèi)容,則可以使用babel插件來完成。
以上是“為什么不使用TypeScript”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前題目:為什么不使用TypeScript
網(wǎng)站鏈接:http://jinyejixie.com/article2/ggeiic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)、企業(yè)建站、微信公眾號、建站公司、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)