偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

不使用TypeScript的7個(gè)非常好的理由

開(kāi)發(fā) 前端
有很多使用TypeScript的充分理由,但是我將給您7個(gè)不使用TypeScript的充分理由。

每個(gè)人都喜歡TypeScript。它"解決"了JS的許多問(wèn)題,它是JS的"超集",它將使您的代碼不易出錯(cuò),并且閱讀起來(lái)令人愉悅。有很多使用TypeScript的充分理由,但是我將給您7個(gè)不使用TypeScript的充分理由。

[[373654]]

有風(fēng)險(xiǎn)

哇。如果TypeScript添加類(lèi)型定義并在編譯時(shí)檢查它們,那會(huì)有什么風(fēng)險(xiǎn)?IDE集成還會(huì)警告您任何類(lèi)型不匹配的信息嗎?正因?yàn)槿绱?。TypeScript僅在編譯時(shí)檢查類(lèi)型,并且僅檢查可用的類(lèi)型。任何網(wǎng)絡(luò)調(diào)用,系統(tǒng)庫(kù),特定于平臺(tái)的API和無(wú)類(lèi)型的第三方庫(kù)都無(wú)法與TypeScript通信。當(dāng)您習(xí)慣檢查類(lèi)型并不必完全了解代碼和平臺(tái)時(shí),錯(cuò)誤和錯(cuò)誤就會(huì)顯現(xiàn)出來(lái)。

使用JS,您無(wú)需對(duì)類(lèi)型做任何假設(shè),并且可以檢查變量的具體值以確保其符合您的期望?;蛘?,如果您在這種情況下不關(guān)心其類(lèi)型,則不必。在TS中,您依靠編譯器為您完成此任務(wù),但是它只能進(jìn)行很多檢查。您可以將這兩種方式結(jié)合起來(lái),那又有什么意義呢?如果您要花時(shí)間編寫(xiě)定義,然后花時(shí)間編寫(xiě)代碼以確保在運(yùn)行時(shí)維護(hù)這些定義,那么為什么首先要使用它們?

太亂了

另一個(gè)悖論:本應(yīng)為代碼庫(kù)帶來(lái)清晰度和可讀性的語(yǔ)言反而使它模糊。為了說(shuō)明我的意思,請(qǐng)查看一些我在流行的開(kāi)源庫(kù)中找到的示例:

  1. // TODO: do this more elegantly 
  2. ;((currentReducer as unknown) as Reducer< 
  3.   NewState
  4.   NewActions 
  5. >) = nextReducer 

這是來(lái)自Redux庫(kù)的,所有這4行代碼都將nextReducer分配給currentReducer。

  1. // HACK: Since TypeScript inherits static properties too, we have to 
  2. // fight against TypeScript here so Subject can have a different static create signature 
  3. /** 
  4.  * Creates a new cold Observable by calling the Observable constructor 
  5.  * @static true 
  6.  * @owner Observable 
  7.  * @method create 
  8.  * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor 
  9.  * @return {Observable} a new cold observable 
  10.  * @nocollapse 
  11.  * @deprecated use new Observable() instead 
  12.  */ 
  13. static create: Function = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => { 
  14.   return new Observable<T>(subscribe); 

下一個(gè)示例來(lái)自RxJS庫(kù)。我不了解您,但是如果我必須使用一種可以幫助我的工具,那么我認(rèn)為這不是一個(gè)好工具。

它不能解決問(wèn)題

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

即使假設(shè)JS中缺少鍵入是一個(gè)問(wèn)題,TS也無(wú)法解決。你知道嗎Java,C,C#和其他編譯語(yǔ)言。他們可以安全地在編譯時(shí)和運(yùn)行時(shí)保證強(qiáng)類(lèi)型??谧g語(yǔ)言無(wú)法做到這一點(diǎn)。

它不是超集,而是子集

TypeScript是可以編譯為JavaScript的東西,根據(jù)定義它不能是超集。它限制了您可以使用JavaScript進(jìn)行的操作,并掩蓋了它的強(qiáng)項(xiàng),同時(shí)提供了假的安全。如果您真的想成為一名優(yōu)秀的開(kāi)發(fā)人員,請(qǐng)不要為安慰自己而撒謊,而是嘗試了解JavaScript的真正功能及其靈活性。

它是開(kāi)源的,僅此而已

使用TypeScript的許多原因都表明它是開(kāi)源的。沒(méi)錯(cuò),TS編譯器是在MIT許可下分發(fā)的。但是它仍然由微軟(一家壟斷性公司)控制,它的開(kāi)源進(jìn)步不過(guò)是行銷(xiāo)之舉。不要將開(kāi)源與民主相混淆:Microsoft仍然可以自由地使用TS做任何您想做的事情,而且您就在這里觀看。另一方面,JS受?chē)?guó)際委員會(huì)的管理,未經(jīng)社區(qū)批準(zhǔn)不會(huì)更改任何內(nèi)容。

但是大公司使用它…

我不敢相信有人認(rèn)為這是一個(gè)原因。大公司還使用舊版代碼庫(kù),進(jìn)行稅務(wù)欺詐并歧視婦女。為什么突然之間使用TypeScript就是一個(gè)很好的例子?

但是它具有更多功能……

不再。的確,當(dāng)TS在2012年首次推出時(shí),它具有諸如類(lèi)之類(lèi)的功能,但在JS中仍然不可用。但是從那時(shí)起,JS已經(jīng)走了很長(zhǎng)一段路,現(xiàn)在TS努力跟上。如果JS中缺少任何內(nèi)容,則可以使用babel插件來(lái)完成。

原文鏈接:

https://medium.com/javascript-in-plain-english/7-really-good-reasons-not-to-use-typescript-166af597c466)

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2020-03-07 15:25:38

TypeScript代碼開(kāi)發(fā)

2009-11-09 09:09:42

Windows 7市場(chǎng)銷(xiāo)售

2009-04-08 08:50:17

Windows 7微軟操作系統(tǒng)

2012-11-21 10:01:35

RubyWeb

2019-04-28 11:01:05

云安全云計(jì)算CASB

2021-03-15 09:27:05

Redis優(yōu)化技術(shù)

2012-05-15 09:35:43

jQuery

2017-12-25 13:58:23

匿名函數(shù)普通函數(shù)代碼

2010-05-13 11:45:56

MySQL數(shù)據(jù)庫(kù)

2018-10-08 14:35:01

Linux游戲教育軟件

2021-03-04 09:20:20

數(shù)據(jù)Redis 架構(gòu)

2010-06-10 10:50:17

MySQL數(shù)據(jù)庫(kù)

2011-05-18 15:40:52

MySQL

2021-04-30 20:10:46

類(lèi)加載Java代碼

2009-12-31 10:02:06

Ubuntu VMwa

2023-11-03 14:50:14

2020-12-14 09:55:17

Redis數(shù)據(jù)庫(kù)命令

2011-03-02 13:54:39

MySQL數(shù)據(jù)庫(kù)

2010-02-12 09:26:28

XP系統(tǒng)更新

2009-03-11 17:52:36

LinuxGnomeKDE
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)