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

7個不使用TypeScript的理由,你認同嗎?

開發
TypeScript很受大眾喜愛。因為它“解決”了JS的許多問題,是JS的“超集”。它不僅能輕松找出代碼錯誤,還能使其易于閱讀。對,沒錯,使用TypeScript的理由太多了。反其道而行之,今天小芯就要說7個不使用TypeScript的理由。

TypeScript很受大眾喜愛。因為它“解決”了JS的許多問題,是JS的“超集”。它不僅能輕松找出代碼錯誤,還能使其易于閱讀。

對,沒錯,使用TypeScript的理由太多了。

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

1. 它不能解決問題

據說TypeScript可以解決JavaScript的問題,但事實并非如此。動態類型在JavaScript中從來都不是問題,但是許多其他問題,例如NaN===NaN為false、分號為可選或非可選、換行符將對象定義更改為作用域、語法糖代替OOP等,確實是問題。TypeScript并沒有解決這些問題,但是引入了另一個標準,進一步分化了JS社區。

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

2. 雖然開源,但很局限

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

[[317740]]

來源:Pexels

3. 危險

所以,如果TypeScript添加類型定義并在編譯時進行檢查,會有什么風險呢?以及IDE集成將警告你任何類型不匹配?

正因為如此,TypeScript只在編譯時檢查類型,并且只檢查可用的類型。任何網絡調用、系統庫、特定于平臺的API和非類型化的第三方庫都無法與TypeScript通信。當你習慣于檢查類型,而不必完全理解代碼和平臺時,就會出現錯誤和bug。

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

4. 凌亂

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

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

viewrawcreateStore.ts hostedwith❤by GitHub

這一行來自Redux庫,這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

下一個例子來自RxJS庫。我不知道你的情況,但如果我要和一個應該幫助我的工具戰斗,我認為這不是一個好工具。

5. 不是超集,而是子集

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

6. 有更多的特點…

這個原因已經不再成立。誠然,當TS在2012年首次引入時,它具有類等特性,但在JS中仍然不可用。但是JS從那時起已經走了很長的路,現在TS正在努力跟上。如果JS中缺少任何東西,那么就需要一個babel插件來完成。

7. 大公司會選擇它…

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

[[317741]]

來源:Pexels

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

 

責任編輯:趙寧寧 來源: 讀芯術
相關推薦

2021-01-04 20:48:19

TypeScriptJS前端

2012-11-21 10:01:35

RubyWeb

2010-05-13 11:45:56

MySQL數據庫

2017-12-25 13:58:23

匿名函數普通函數代碼

2010-06-10 10:50:17

MySQL數據庫

2011-05-18 15:40:52

MySQL

2017-05-04 22:30:19

Python學習理由

2011-03-02 13:54:39

MySQL數據庫

2017-05-23 15:00:06

PythonDjangoadmin

2023-12-18 10:45:22

SQL開發數據庫

2010-02-12 09:26:28

XP系統更新

2023-11-03 00:28:44

ApacheFlink

2013-08-26 09:44:43

iOS 7AppStoreiPhone越獄

2021-08-09 14:47:34

Go語言開發

2009-04-30 08:58:39

微軟操作系統Windows 7

2020-04-27 21:31:28

智慧城市物聯網IOT

2009-11-29 17:15:53

Linux操作系統

2014-11-03 09:36:22

2023-01-04 08:17:21

Typescript技巧欺騙性

2020-06-04 08:15:53

Kubernetes容器PaaS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线播放第一页 | 国产视频导航 | 国产精品国产精品 | 久久精品国产免费看久久精品 | 久草网站 | 成人国产免费视频 | ww亚洲ww亚在线观看 | 九九热在线免费观看 | 免费看国产一级特黄aaaa大片 | 免费特级黄毛片 | 国产精品久久99 | 中文字幕一区二区三区四区 | 亚洲电影专区 | 午夜免费网 | 国产99久久精品一区二区永久免费 | 日韩精品二区 | 欧美h | 精品国产一区探花在线观看 | 成人免费在线观看 | 亚洲不卡在线视频 | 99精品99 | 国产精品久久国产愉拍 | 国产高清在线精品 | 秋霞电影一区二区三区 | 久色| 中文字幕一区二区三区在线乱码 | 日韩一级免费电影 | 亚洲 精品 综合 精品 自拍 | 午夜ww| 久久久久国产一区二区三区 | 欧美寡妇偷汉性猛交 | 国产成人a亚洲精品 | 成人久久18免费网站麻豆 | 亚洲免费网址 | 国产精品伦一区二区三级视频 | 在线观看黄视频 | 日韩中文字幕在线观看 | 激情小说综合网 | 亚洲精品一区二区网址 | 亚洲高清av在线 | 日韩免费av一区二区 |