'TypeScript 解決了什麼痛點?'

"

原文:https://www.zhihu.com/question/308844713/answer/640331606

"

原文:https://www.zhihu.com/question/308844713/answer/640331606

TypeScript 解決了什麼痛點?

1. TS是什麼 ?

"

原文:https://www.zhihu.com/question/308844713/answer/640331606

TypeScript 解決了什麼痛點?

1. TS是什麼 ?

TypeScript 解決了什麼痛點?

TypeScript = Type + Script(標準JS)。

2. 為什麼要用TS ?

目標:生命週期較長(常常持續幾年)的複雜SPA應用,保障開發效率的同時提升代碼的可維護性和線上運行時質量。

  • 從開發效率上看,雖然需要多寫一些類型定義代碼,但 TS 在 VSCode、WebStorm 等 IDE 下可以做到智能提示,智能感知 bug,同時我們項目常用的一些第三方類庫框架都有 TS 類型聲明,我們也可以給那些沒有 TS 類型聲明的穩定模塊寫聲明文件,如我們的前端 KOP 框架(目前還是螞蟻內部框架,類比 dva ),這在團隊協作項目中可以提升整體的開發效率。
  • 從可維護性上看,長期迭代維護的項目開發和維護的成員會有很多,團隊成員水平會有差異,而軟件具有的特質,長期迭代維護的項目總會遇到可維護性逐漸降低的問題,有了強類型約束和靜態檢查,以及智能 IDE 的幫助下,可以降低軟件腐化的速度,提升可維護性,且在重構時,強類型和靜態類型檢查會幫上大忙,甚至有了類型定義,會不經意間增加重構的頻率(更安全、放心)。
  • 從線上運行時質量上看,我們現在的 SPA 項目的很多 bug 都是由於一些調用方和被調用方(如組件模塊間的協作、接口或函數的調用)的數據格式不匹配引起的,由於 TS 有編譯期的靜態檢查,讓我們的 bug 儘可能消滅在編譯器,加上 IDE 有智能糾錯,編碼時就能提前感知 bug 的存在,我們的線上運行時質量會更為穩定可控。

3. 使用 TS 的成本

學習成本

理論上學習並應用一門新語言是需要很高成本的,但好在 TS 本身是 JS 的超集,這也意味著他本身是可以支持現有 JS 代碼的,至少理論上是這樣。學習一下類型系統的相關知識和麵向對象的基礎知識,應該可以 hold 住 TS,成本不會很高。官方文檔是最好的學習材料。

4. 社區發展

從 Stackoverflow 的2017年開發者調查報告、Google趨勢、npm下載量趨勢上可以到看,TypeScript社區發展很快,特別是最近幾年。特別是伴隨著 VS Code 的誕生( TS 寫的,對 TS 支持非常友好),VS Code + TypeScript 的組合讓前端圈產生了一股清流,生產力和規範性得到了快速提升。從 Google 對 TS 的支持(Angular 高於 2 的版本是 TS 寫的)看到,國際大廠也是支持的。

從螞蟻集團內部看,Ant Design、Basement 等產品也是基於 TS 寫的(至少是在大量使用),雖然有一些反對的聲音,但總體還是看好的,有合適的土壤就會快速發展,如 Ant Design。

5. 接受TS

TS 剛出來時我是有點牴觸的,或者對她的感覺就跟和CoffeeScript、Dart等編譯到JS語言差不多,感覺就是其他語言往JS滲透的產物,近一兩年,社區中TS的聲音越來越強,而我也開始做大型 JavaScript 應用,隨之逐漸重新認識 TS,逐漸認識到 TS 的類型系統、TSC 的靜態檢查、VS Code 等 IDE 的強力支持對於開發出可維護性好、穩定性高的大型 JavaScript 應用的重要性。

6. 權衡

如何更好的利用 JS 的動態性和 TS 的靜態特質,我們需要結合項目的實際情況來進行綜合判斷。一些建議:

  • 如果是中小型項目,且生命週期不是很長,那就直接用 JS 吧,不要被 TS 束縛住了手腳。
  • 如果是大型應用,且生命週期比較長,那建議試試 TS。
  • 如果是框架、庫之類的公共模塊,那更建議用 TS 了。

至於到底用不用 TS,還是要看實際項目規模、項目生命週期、團隊規模、團隊成員情況等實際情況綜合考慮。

所以 TypeScript 能不能成為了你的 “剛需” 就看你自己的情況了。

7. 項目實戰

Vue3.0 將使用 TS 重寫,重寫後的 Vue3.0 將更好的支持 TS。2019 年 TypeScript 將會更加普及,能夠熟練掌握 TS,並使用 TS 開發過項目,將更加成為前端開發者的優勢。

筆者最近也用 vue + TypeScript + Element 進行了一次實戰,感覺還是不錯的。

虛影:Vue + TypeScript + Element 項目實戰及踩坑記​

zhuanlan.zhihu.com

"

原文:https://www.zhihu.com/question/308844713/answer/640331606

TypeScript 解決了什麼痛點?

1. TS是什麼 ?

TypeScript 解決了什麼痛點?

TypeScript = Type + Script(標準JS)。

2. 為什麼要用TS ?

目標:生命週期較長(常常持續幾年)的複雜SPA應用,保障開發效率的同時提升代碼的可維護性和線上運行時質量。

  • 從開發效率上看,雖然需要多寫一些類型定義代碼,但 TS 在 VSCode、WebStorm 等 IDE 下可以做到智能提示,智能感知 bug,同時我們項目常用的一些第三方類庫框架都有 TS 類型聲明,我們也可以給那些沒有 TS 類型聲明的穩定模塊寫聲明文件,如我們的前端 KOP 框架(目前還是螞蟻內部框架,類比 dva ),這在團隊協作項目中可以提升整體的開發效率。
  • 從可維護性上看,長期迭代維護的項目開發和維護的成員會有很多,團隊成員水平會有差異,而軟件具有的特質,長期迭代維護的項目總會遇到可維護性逐漸降低的問題,有了強類型約束和靜態檢查,以及智能 IDE 的幫助下,可以降低軟件腐化的速度,提升可維護性,且在重構時,強類型和靜態類型檢查會幫上大忙,甚至有了類型定義,會不經意間增加重構的頻率(更安全、放心)。
  • 從線上運行時質量上看,我們現在的 SPA 項目的很多 bug 都是由於一些調用方和被調用方(如組件模塊間的協作、接口或函數的調用)的數據格式不匹配引起的,由於 TS 有編譯期的靜態檢查,讓我們的 bug 儘可能消滅在編譯器,加上 IDE 有智能糾錯,編碼時就能提前感知 bug 的存在,我們的線上運行時質量會更為穩定可控。

3. 使用 TS 的成本

學習成本

理論上學習並應用一門新語言是需要很高成本的,但好在 TS 本身是 JS 的超集,這也意味著他本身是可以支持現有 JS 代碼的,至少理論上是這樣。學習一下類型系統的相關知識和麵向對象的基礎知識,應該可以 hold 住 TS,成本不會很高。官方文檔是最好的學習材料。

4. 社區發展

從 Stackoverflow 的2017年開發者調查報告、Google趨勢、npm下載量趨勢上可以到看,TypeScript社區發展很快,特別是最近幾年。特別是伴隨著 VS Code 的誕生( TS 寫的,對 TS 支持非常友好),VS Code + TypeScript 的組合讓前端圈產生了一股清流,生產力和規範性得到了快速提升。從 Google 對 TS 的支持(Angular 高於 2 的版本是 TS 寫的)看到,國際大廠也是支持的。

從螞蟻集團內部看,Ant Design、Basement 等產品也是基於 TS 寫的(至少是在大量使用),雖然有一些反對的聲音,但總體還是看好的,有合適的土壤就會快速發展,如 Ant Design。

5. 接受TS

TS 剛出來時我是有點牴觸的,或者對她的感覺就跟和CoffeeScript、Dart等編譯到JS語言差不多,感覺就是其他語言往JS滲透的產物,近一兩年,社區中TS的聲音越來越強,而我也開始做大型 JavaScript 應用,隨之逐漸重新認識 TS,逐漸認識到 TS 的類型系統、TSC 的靜態檢查、VS Code 等 IDE 的強力支持對於開發出可維護性好、穩定性高的大型 JavaScript 應用的重要性。

6. 權衡

如何更好的利用 JS 的動態性和 TS 的靜態特質,我們需要結合項目的實際情況來進行綜合判斷。一些建議:

  • 如果是中小型項目,且生命週期不是很長,那就直接用 JS 吧,不要被 TS 束縛住了手腳。
  • 如果是大型應用,且生命週期比較長,那建議試試 TS。
  • 如果是框架、庫之類的公共模塊,那更建議用 TS 了。

至於到底用不用 TS,還是要看實際項目規模、項目生命週期、團隊規模、團隊成員情況等實際情況綜合考慮。

所以 TypeScript 能不能成為了你的 “剛需” 就看你自己的情況了。

7. 項目實戰

Vue3.0 將使用 TS 重寫,重寫後的 Vue3.0 將更好的支持 TS。2019 年 TypeScript 將會更加普及,能夠熟練掌握 TS,並使用 TS 開發過項目,將更加成為前端開發者的優勢。

筆者最近也用 vue + TypeScript + Element 進行了一次實戰,感覺還是不錯的。

虛影:Vue + TypeScript + Element 項目實戰及踩坑記​

zhuanlan.zhihu.com

TypeScript 解決了什麼痛點?

TypeScript 的出現, 終於讓 JavaScript 不會因為沒有靜態類型檢查,而被後端工程師看低了。

"

相關推薦

推薦中...