<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          你為什么不用TS

          共 2010字,需瀏覽 5分鐘

           ·

          2021-01-04 04:40

          想不想用其實(shí)是看公司的,如果在的部門現(xiàn)在使用的是vue2,本身就不支持我使用TS。


          不過(guò),我本人還是不愿意使用TS的。因?yàn)門S已經(jīng)違背我之前學(xué)習(xí)JS的初心了,我學(xué)JS本身就是因?yàn)槠浔旧淼撵`活,不是強(qiáng)定義類型,變量直接定義賦值即可,這幾點(diǎn)吸引了我。雖然我也知道TS易于管理,易于后期維護(hù),我也學(xué)習(xí)了TS,并且在Vue3,React中使用過(guò)typescript寫過(guò)幾個(gè)自己的小項(xiàng)目。如果未來(lái)的項(xiàng)目或者以后的公司要求使用TS,我也會(huì)使用的。


          但是這并不影響我不想用TS,我覺得加入了一堆泛型,接口(interface)和定義好數(shù)據(jù)類型的變量的JS代碼,不是最初喜歡的那個(gè)JS了。我喜歡的JS是那個(gè)無(wú)拘無(wú)束的JS,雖然我改BUG錯(cuò)誤的時(shí)候也改的頭皮發(fā)麻,但是我就是喜歡寫JS的感覺。TS雖然縱有千般好,但抵不過(guò)我寫你時(shí)不爽的一時(shí)過(guò)。


          接下來(lái)我們聊聊 TypeScript 附帶的其它問(wèn)題。這些問(wèn)題需要具體問(wèn)題具體解決,所以我在這里不提供解決方案,只是告訴讀者可能面臨的問(wèn)題以及可以解決到什么程度。本人用的是 2019 macbook pro (CPU: 2.6 GHz Intel Core i7 + Mem: 32 GB 2400 MHz DDR4)。


          1、hot reload 速度慢。以前改完代碼之后立刻會(huì)重新刷新頁(yè)面或者熱啟 node 服務(wù)器。然而現(xiàn)在有 TypeScript 之后還有額外的 transpile 一步。reload 的速度直接從幾秒變成幾十秒。我們做了一些優(yōu)化,但是還是不能像以前那么快。


          2、VSCode 占用資源暴增。VSCode intellisense 速度緩慢。最難受的是報(bào)錯(cuò)是在寫完該行后 10 秒左右。做了優(yōu)化之后稍微好了一些。


          3、第三方庫(kù)不支持 typscript。這個(gè)可以解決,就是自己寫 typed interface。


          4、天書一般的報(bào)錯(cuò)信息。很高一部分比例的錯(cuò)誤長(zhǎng)這個(gè)樣子:


          No overload matches this call.  Overload 1 of 3, '(props: { href: string; } & { action?: ((instance: ButtonBaseActions | null) => void) | RefObject | null | undefined; ... 8 more ...; TouchRippleProps?: Partial<...> | undefined; } & { ...; } & CommonProps<...> & Pick<...>): Element', gave the following error.    Type '{ to: string; label: string; classes: { root: string | undefined; }; }' is not assignable to type 'IntrinsicAttributes & { href: string; } & { action?: ((instance: ButtonBaseActions | null) => void) | RefObject | null | undefined; ... 8 more ...; TouchRippleProps?: Partial<...> | undefined; } & { ...; } & CommonProps<...> & Pick<...>'.      Property 'to' does not exist on type 'IntrinsicAttributes & { href: string; } & { action?: ((instance: ButtonBaseActions | null) => void) | RefObject | null | undefined; ... 8 more ...; TouchRippleProps?: Partial<...> | undefined; } & { ...; } & CommonProps<...> & Pick<...>'.  。。。


          說(shuō)了這么多,如果你問(wèn)我是否推薦 TypeScript,我只能說(shuō)看情況。type check 對(duì)于大型項(xiàng)目來(lái)說(shuō)太重要了。讀和寫代碼的時(shí)候,有 type 也會(huì)在一些方面提高程序員的效率。但是我認(rèn)為 TypeScript 可以提高的空間還有很多。如果你很在乎開發(fā)速度,快速迭代,那么建議你繼續(xù)用 JavaScript。如果你需要高穩(wěn)定性,那么建議你使用 TypeScript。


          瀏覽 134
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本成人大香蕉视频在线观看 | 中国一区二区精品 | 奇米影视7777 | 狠狠干美女| 欧洲久久电影 |