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

7個(gè)不使用TypeScript的理由,你認(rèn)同嗎?

開(kāi)發(fā)
TypeScript很受大眾喜愛(ài)。因?yàn)樗敖鉀Q”了JS的許多問(wèn)題,是JS的“超集”。它不僅能輕松找出代碼錯(cuò)誤,還能使其易于閱讀。對(duì),沒(méi)錯(cuò),使用TypeScript的理由太多了。反其道而行之,今天小芯就要說(shuō)7個(gè)不使用TypeScript的理由。

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

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

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

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

據(jù)說(shuō)TypeScript可以解決JavaScript的問(wèn)題,但事實(shí)并非如此。動(dòng)態(tài)類(lèi)型在JavaScript中從來(lái)都不是問(wèn)題,但是許多其他問(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中缺少類(lèi)型是一個(gè)問(wèn)題,TS也不能解決這個(gè)問(wèn)題。你知道什么語(yǔ)言可以解決嗎?Java、C、C#等編譯語(yǔ)言可以。它們可以在編譯和運(yùn)行時(shí)安全地保證強(qiáng)類(lèi)型。翻譯語(yǔ)言就是不能做到這一點(diǎn)。

2. 雖然開(kāi)源,但很局限

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

[[317740]]

來(lái)源:Pexels

3. 危險(xiǎn)

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

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

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

4. 凌亂

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

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

viewrawcreateStore.ts hostedwith❤by GitHub

這一行來(lái)自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<T>(subscribe?: (subscriber: Subscriber<T>) =>TeardownLogic) => { 
  14.   returnnewObservable<T>(subscribe); 

viewrawObservable.ts hostedwith❤by GitHub

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

5. 不是超集,而是子集

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

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

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

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

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

[[317741]]

來(lái)源:Pexels

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

 

責(zé)任編輯:趙寧寧 來(lái)源: 讀芯術(shù)
相關(guān)推薦

2021-01-04 20:48:19

TypeScriptJS前端

2012-11-21 10:01:35

RubyWeb

2010-05-13 11:45:56

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

2017-12-25 13:58:23

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

2010-06-10 10:50:17

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

2011-05-18 15:40:52

MySQL

2017-05-04 22:30:19

Python學(xué)習(xí)理由

2011-03-02 13:54:39

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

2017-05-23 15:00:06

PythonDjangoadmin

2023-12-18 10:45:22

SQL開(kāi)發(fā)數(shù)據(jù)庫(kù)

2010-02-12 09:26:28

XP系統(tǒng)更新

2023-11-03 00:28:44

ApacheFlink

2013-08-26 09:44:43

iOS 7AppStoreiPhone越獄

2021-08-09 14:47:34

Go語(yǔ)言開(kāi)發(fā)

2009-04-30 08:58:39

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

2020-04-27 21:31:28

智慧城市物聯(lián)網(wǎng)IOT

2009-11-29 17:15:53

Linux操作系統(tǒng)

2014-11-03 09:36:22

2023-01-04 08:17:21

Typescript技巧欺騙性

2013-01-18 08:53:27

Android開(kāi)發(fā)學(xué)習(xí)Android
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 人人九九精 | 国产一区| 久久91精品国产一区二区 | 欧美日韩在线一区二区三区 | 久久精品国产久精国产 | 看片地址| 日韩1区| 国产精品视频一 | 国产精品看片 | 九色国产| 成人在线播放网址 | 国产欧美一区二区三区在线看 | 欧美11一13sex性hd | 午夜a区| 激情国产视频 | 欧美日韩中文在线 | 美国十次成人欧美色导视频 | 国产成人一区二区三区 | 91久久久久久久久久久久久 | 中文字幕一区在线观看视频 | 日本污视频| 欧美日韩中文字幕在线 | 精品视频一区二区三区在线观看 | 欧美日韩黄色一级片 | 韩日一区二区 | 日韩在线观看精品 | 欧美成年人网站 | 久久免费精品视频 | 81精品国产乱码久久久久久 | 九九热在线视频 | 欧美一区二区三区在线 | 免费国产黄 | 成人性视频免费网站 | 一级毛片在线视频 | 日本久久精品视频 | 丁香五月缴情综合网 | 日韩手机在线看片 | 福利片在线观看 | 日日干日日操 | 日韩成人免费av | 国产h在线 |