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

不使用TypeScript的7個非常好的理由

開發 前端
有很多使用TypeScript的充分理由,但是我將給您7個不使用TypeScript的充分理由。

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

[[373654]]

有風險

哇。如果TypeScript添加類型定義并在編譯時檢查它們,那會有什么風險?IDE集成還會警告您任何類型不匹配的信息嗎?正因為如此。TypeScript僅在編譯時檢查類型,并且僅檢查可用的類型。任何網絡調用,系統庫,特定于平臺的API和無類型的第三方庫都無法與TypeScript通信。當您習慣檢查類型并不必完全了解代碼和平臺時,錯誤和錯誤就會顯現出來。

使用JS,您無需對類型做任何假設,并且可以檢查變量的具體值以確保其符合您的期望。或者,如果您在這種情況下不關心其類型,則不必。在TS中,您依靠編譯器為您完成此任務,但是它只能進行很多檢查。您可以將這兩種方式結合起來,那又有什么意義呢?如果您要花時間編寫定義,然后花時間編寫代碼以確保在運行時維護這些定義,那么為什么首先要使用它們?

太亂了

另一個悖論:本應為代碼庫帶來清晰度和可讀性的語言反而使它模糊。為了說明我的意思,請查看一些我在流行的開源庫中找到的示例:

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

這是來自Redux庫的,所有這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); 

下一個示例來自RxJS庫。我不了解您,但是如果我必須使用一種可以幫助我的工具,那么我認為這不是一個好工具。

它不能解決問題

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

即使假設JS中缺少鍵入是一個問題,TS也無法解決。你知道嗎Java,C,C#和其他編譯語言。他們可以安全地在編譯時和運行時保證強類型。口譯語言無法做到這一點。

它不是超集,而是子集

TypeScript是可以編譯為JavaScript的東西,根據定義它不能是超集。它限制了您可以使用JavaScript進行的操作,并掩蓋了它的強項,同時提供了假的安全。如果您真的想成為一名優秀的開發人員,請不要為安慰自己而撒謊,而是嘗試了解JavaScript的真正功能及其靈活性。

它是開源的,僅此而已

使用TypeScript的許多原因都表明它是開源的。沒錯,TS編譯器是在MIT許可下分發的。但是它仍然由微軟(一家壟斷性公司)控制,它的開源進步不過是行銷之舉。不要將開源與民主相混淆:Microsoft仍然可以自由地使用TS做任何您想做的事情,而且您就在這里觀看。另一方面,JS受國際委員會的管理,未經社區批準不會更改任何內容。

但是大公司使用它…

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

但是它具有更多功能……

不再。的確,當TS在2012年首次推出時,它具有諸如類之類的功能,但在JS中仍然不可用。但是從那時起,JS已經走了很長一段路,現在TS努力跟上。如果JS中缺少任何內容,則可以使用babel插件來完成。

原文鏈接:

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

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-03-07 15:25:38

TypeScript代碼開發

2009-11-09 09:09:42

Windows 7市場銷售

2009-04-08 08:50:17

Windows 7微軟操作系統

2012-11-21 10:01:35

RubyWeb

2019-04-28 11:01:05

云安全云計算CASB

2021-03-15 09:27:05

Redis優化技術

2010-05-13 11:45:56

MySQL數據庫

2017-12-25 13:58:23

匿名函數普通函數代碼

2012-05-15 09:35:43

jQuery

2018-10-08 14:35:01

Linux游戲教育軟件

2010-06-10 10:50:17

MySQL數據庫

2021-03-04 09:20:20

數據Redis 架構

2011-05-18 15:40:52

MySQL

2021-04-30 20:10:46

類加載Java代碼

2009-12-31 10:02:06

Ubuntu VMwa

2011-03-02 13:54:39

MySQL數據庫

2023-11-03 14:50:14

2020-12-14 09:55:17

Redis數據庫命令

2010-02-12 09:26:28

XP系統更新

2009-03-11 17:52:36

LinuxGnomeKDE
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲aⅴ精品 | 天天干天天操天天爽 | 91porn国产成人福利 | 日韩欧美不卡 | 99精品欧美一区二区蜜桃免费 | 一级毛片视频在线观看 | 亚洲午夜精品一区二区三区他趣 | 国产免费一级一级 | 亚洲激情综合 | 欧美日韩中文在线 | 成人免费黄色 | 欧美伊人| 日韩精品在线视频免费观看 | 国产高清一区二区 | 欧美日韩三级 | 久久人操| 精品国产一区二区 | 日韩在线免费视频 | 久久亚洲一区 | 欧美亚洲视频 | 人人做人人澡人人爽欧美 | 国产精品福利网 | 91se在线 | 国内精品久久影院 | www.色综合| 国产一区免费 | 国产ts人妖一区二区三区 | 二区欧美 | 日韩欧美国产一区二区三区 | 日韩欧美久久精品 | 欧美高清视频一区 | 日本在线视频一区二区 | 欧美一区二区三区久久精品 | 日韩字幕一区 | 亚洲欧美aⅴ | 91精品国产91久久综合桃花 | 久久精品这里精品 | 国产精品二区三区在线观看 | 成人在线观看免费 | 亚洲成人一区二区 | 欧美一区免费在线观看 |