最近幾個月我已經全面拋棄 JavaScript,徹底使用 TypeScript 進行前端開發(只在上課的時候用到 JS)。前端
先說優勢:面試
再說缺點:typescript
沒有。哈哈。瀏覽器
不用慌,TS 的代碼跟 JS 差很少,你學完 JS 後,只須要學習一下類型聲明就能夠掌握 TS 了。框架
若是你公司的項目目前只支持 JS,也沒有關係,只須要加一個 ts-loader 或者 awesome-typescript-loader 就能提供 TypeScript 支持,TS 能夠和 JS 共存哦。模塊化
而後你就能夠逐步用 TS 代替 JS,實現完美過渡。單元測試
若是你如今尚未開始學習 TS,確定是由於對 TS 有所顧慮。去問問用了 TS 的前端感受怎麼樣吧,基本沒有一個說後悔的。因此這種顧慮是徹底沒有必要的。學習
那麼 TS 爲何這麼好呢?接下來咱們從理論上解釋一下。測試
這是一個重要的問題:有沒有什麼辦法能讓我快速知道「代碼有bug沒」。lua
爲了說明類型是如何解決這個問題的,咱們先來介紹一種最簡單的類型:正負數。
咱們把實數分爲三種類型:正數、負數和0。
而後看下面這個等式:
28937829 * -1239282 = 35862130598778
複製代碼
聰明的你一眼就看出這個等式不對。爲何?由於「正數」乘以「負數」必然獲得「負數」。因此咱們根本不用運行這個乘法,就知道這個結果不對。
這就是類型好處。
TS 就是在 JS 上加上類型聲明,這樣咱們就能知道代碼是否「大概」正確。
另外,這種方式速度很是快,快到你只要修改代碼,TS 就能告訴你代碼是否「大概」正確。
從而避免不少 bug。
你只須要稍微花一點點時間,就能讓代碼質量提高,何樂不爲呢?
錯,只要是有 bug 的 JS 項目,均可以用 TS 替代 JS 從而減小 bug。
因此不管是小項目仍是大項目,都有必要使用 TS。
這個問題問得好,前端發展這麼快,不少東西都是火幾年就不火了,致使後期想招人維護都難(好比 AngularJS 1)。
可是 TS 不存在這個問題。爲何?
由於目前前端三大框架全都支持 TS 了:
若是有一年 TS 不火了,上面框架的維護者會提早爲你想好升級方案的,你就沒必要過多擔憂了。
畢竟背靠大樹好乘涼。
No No No,TS 裏面包含了 JS 的全部語法,因此你在用 TS 的時候,實際上仍是在用 JS。
也就是說 JS 的魂還在,咱們只是再也不單獨使用 JS 了。
快點學 TypeScript 吧,它很快就是一線互聯網公司面試加分項甚至必備項了。
若是你有什麼須要反駁的,歡迎反駁,可是請給出充足的理由,無心義的站隊和灌水評論會被我刪掉,這樣咱們的討論纔會更有意義。
沒有看完文章就評論的,也會被刪除。