<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          放棄 TypeScript 的 7 個非常好的理由

          時間:?2020-02-24閱讀:?92標簽:?TypeScript

          很多人都喜歡 TypeScript。它“解決”了 JS 的許多問題,是 JS 的一個“超集”,它將使代碼易于閱讀。有很多使用 TypeScript 的理由,但是我將給您 7 個不使用 TypeScript 的理由。


          TypeScript 有風險

          TypeScript 添加類型定義并在編譯時檢查類型,怎么會有風險?IDE 集成還會警告您有關類型不匹配的信息。不過問題也在這。TypeScript 僅在編譯時檢查類型,并且僅檢查可用的類型。任何網絡調用、系統庫、特定于平臺的 API 和無類型的第三方庫都無法與 TypeScript 通信。當您習慣了類型檢查并不必完全了解代碼和平臺時,錯誤和 BUG 就會顯現出來。

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


          TypeScript 太亂了

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

          // 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);
          }

          這一個示例來自 RxJS 庫。我不知道你是怎么想的,但是如果我必須使用一種工具,那么我認為這并不是一個好工具。


          TypeScript 沒有解決問題

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

          即使所假定的 JS 中缺少類型是一個問題,TS 也無法解決它。如何才能解決?只能是 Java,C,C#和其他編譯型語言。他們可以安全地在編譯時和運行時保證強類型。翻譯型語言無法做到這一點。


          TypeScript不是超集,而是子集

          TypeScript 是可以編譯為 JavaScript,但根據定義它不能是超集。它限制了您可以使用 JavaScript 進行的操作,并掩蓋了它的強項,同時提供了一些心理安慰。如果您真的想成為一名出色的開發人員,請不要安于表面的輕松,而應該嘗試了解 JavaScript 的真正功能及其靈活性。


          TypeScript 是開源的,但僅此而已

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


          但是大公司使用它…

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


          但是它具有更多功能……

          不再是這樣了。的確,當 TS 在 2012 年首次推出時,它具有諸如 class 之類的功能,而彼時在 JS 中仍然不可用。但是從那時起,JS 已經向前發展了很多,而 TS 也在努力跟上。如果 JS 中缺少任何內容,可以使用 babel 插件來完成。

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


          吐血推薦

          1.站長廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入...

          2.休閑娛樂: 直播/交友    優惠券領取   網頁游戲   H5游戲

          鏈接: http://www.modern-decoration.com.cn/article/detial/7643

          在 React 中使用 Typescript

          用 Typescript 寫 React 可比寫 Vue 舒服太多了,React 對 ts 的支持可謂天生搭檔,如果要用 ts 重構項目,不像 Vue 對項目破壞性極大,React 可以相對輕松的實現重構

          為什么要用TypeScript?

          TypeScript的設計目的應該是解決JavaScript的“痛點”:弱類型和沒有命名空間,導致很難模塊化,不適合開發大型程序。另外它還提供了一些語法來幫助大家更方便地實踐面向對象的編程。

          在Vue項目中使用Typescript

          3.0遲遲沒有發布release版本,現階段在Vue項目中使用Typescript需要花不小的精力在工程的配置上面。主要的工作是webpack對TS,TSX的處理,以及2.x版本下面使用class的形式書寫Vue 組件的一些限制和注意事項。

          TypeScript高級用法詳解

          作為一門強大的靜態類型檢查工具,如今在許多中大型應用程序以及流行的JS庫中均能看到TypeScript的身影。JS作為一門弱類型語言,在我們寫代碼的過程中稍不留神便會修改掉變量的類型,從而導致一些出乎意料的運行時錯誤

          TypeScript:入門TS

          官方網站的定義是:TypeScript 是 JS 類型的超集。它假設咱們知道什么是超集,什么是類型化。為了簡單起見,你可以將 TypeScript 看作是 JavaScript 之上的一個外殼。TypeScript 是一個外殼,因為編寫 TypeScript 的代碼

          TypeScript基礎

          數組類型有兩種類型注解方式,特別注意第二種使用 TS 內置的 Array 泛型接口。元組類型:元組是一種特殊的數組,限定了數組元素的個數和類型,函數類型可以先定義再使用

          Typescript 進階

          這是一篇自己總結的 Typescript type相關的進階文章,適合有一定ts基礎,并在type編寫方面感到迷惑、感到絕望的同學,也給那些入門Typescript已久,卻無法更上一層樓的童鞋一個方向

          TypeScript基礎以及在Vue中的應用

          TypeScript推出已經很長時間了,在Angular項目中開發比較普遍,隨著Vue 3.0的即將推出,TypeScript在Vue項目中使用也即將成為很大的趨勢,筆者也是最近才開始研究如何在Vue項目中使用TypeScript進行項目的開發。

          什么場景下不應該使用 TypeScript?

          TypeScript 很棒,但有時用它編程只是在浪費時間。TypeScript 的優勢在于它能在編譯時調試 JavaScript,但有些情況并不適合我們使用 TypeScript,比如構建小型應用程序或原型應用時。

          JavaScript和TypeScript中的void

          如果你來自傳統的強類型語言,可能會很熟悉 void 的概念:一種類型,告訴你函數和方法在調用時不返回任何內容。void 作為運算符存在于 JavaScript 中,而作為基本類型存在于 TypeScript 中。在這兩個世界中

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网