謝謝邀請!
在回答這個問題之前,我們首先要搞清楚,typescript是什么?它有什么好處,能給我們帶來什么收益?
什么是typescript?
它是由微軟公司開發的一套腳本語言,作者認為它是普通javaScript的SuperSet。它并不能直接運行在瀏覽器或者服務器上,所以呢,在運行之前需要經過編譯時的處理。官網說編譯后可以運行在任何平臺、任何服務器、任何系統上。它也是開源的,大家可以到某著名代碼托管平臺查看源碼,但是個人理解這個開源最終解釋權還是微軟公司來定。
typescript的編譯
我相信每一個學習ts的同學對它的第一印象絕對是它能做類型檢查,比如對一些變量,函數的參數以及返回值等等做類型檢查,這些檢查都是在編譯時做的,當你在使用編譯器轉換成js的過程中就可以檢查出來很多錯誤,這樣可以減少出現bug的幾率,提高我們代碼的質量。ts作者已經為我們提供了很好用的cli,我們可以根據自己的需要定義tsconfig。
普通的js編譯通常會有以下幾個步驟:
ts在這個中間加入一步代碼類型檢查:
在你開發ts的時候,cli可以實時提示代碼問題
typescript的優點
首先,個人理解類型檢查是它最大的特點,也可以說是它最大的優點,所有的配套設施都是圍繞著它來做的。
其次,ts提供了諸如接口、抽象、泛型、private、protected、public等在其他語言諸如java,c常見的方式,這些東西都是原生js不具有的,所以開發思想需要有所轉變。
第三點,ts提供了最新的js語法支持
第四點,angular2就是用ts開發,如果你的團隊選擇它作為技術棧,那么ts就是你的基礎,學會了ts就很自然的可以開發angular
typescript的活躍度
ts語言本身大概幾個月發布一個新版本,目前90%的知名的開源庫都提供類型定義文件,自己也能很方便的發布ts開源代碼。目前bat等一線互聯網公司也都或多或少的在使用typescript,整體活躍度還是不錯的,所以前景還是明朗的。
個人理解,ts更適合通用性很強的代碼,不適合迭代速度很快的業務代碼。另外對人員素質要求也變的更高,選型應該量力而行。