typescript介紹

TypeScript 是 JavaScript 的強類型版本。然后在編譯期去掉類型和特有語法,生成純粹的 JavaScript 代碼。由于最終在瀏覽器中運行的仍然是 JavaScript,所以 TypeScript 并不依賴于瀏覽器的支持,也并不會帶來兼容性問題。

TypeScript 是 JavaScript 的超集,這意味著他支持所有的 JavaScript 語法。并在此之上對 JavaScript 添加了一些擴展,如 class / interface / module 等。這樣會大大提升代碼的可閱讀性。

強類型語言的優勢在于靜態類型檢查,具體可以參見 flow.js/typescript 這類定義參數類型的意義何在? - vilicvane 的回答。概括來說主要包括以下幾點:

1. 靜態類型檢查

2. IDE 智能提示

3. 代碼重構

4. 可讀性

TypeScript 雖然是強類型語言,但是如果對象被聲明為了 any 類型,就會忽略所有的類型檢查。這種靈活的結構保證了他可以在保證整體有強類型檢查優勢的同時,在一些細節問題上保持弱類型的靈活。

TypeScript 本身是開源的,這意味著開發者可以自由修改其源代碼,同時 TypeScript 的架構設計也很優秀,提供了充分的 API 接口方便開發者進行進一步擴展。順便說一下,TypeScript 編譯器本身是用 TypeScript 開發的。構建流程是先用舊版本的 TypeScirptCompiler.js 將新版本的 TypeScript Language 的 TypeScript源代碼編譯成新的 TypeScriptCompiler.js,聽起來很厲害的樣子。

由于其開源性,通過 TypeScript Compiler API,開發者可以自己實現編譯器(比如添加增量編譯和自動編譯,大幅提升編譯速度),自定義語法檢查,以及自定義輸出結構等。 由于編譯器核心靈活的結構,開發者只需要簡單的添加一些代碼,就可以在 IDE 中支持 TypeScript 的諸多特性。

順便打個廣告,白鷺引擎是基于 TypeScript 的開源 HTML5 游戲引擎。白鷺引擎的后續版本會利用這些特性不斷完善引擎自身。舉例,我們的 IDE Egret Wing 就利用了 TypeScript Service API 實現了了代碼智能提示等功能。文檔生成工具也是通過擴展 TypeScript Compiler API 實現的。

總結:

我認為 TypeScript 是一項非常值得學習的新技術,由于他是 JavaScript 的超集,對 JavaScript 開發者來說入門門檻很低(相對于 Dart / CoffeeScript 等其他 JavaScript 變種來說 )。

如果一定要找出幾個不用 TypeScript的原因。我能想到以下情況:

1.需要在 HTML 里大量嵌入 JavaScript 代碼,而非 HTML 和 JavaScript 分離。

2.熟練運用原型繼承,不喜歡 class 關鍵字

3.項目中大量依賴了第三方 JavaScript 類庫,并且這些類庫沒有 .d.ts 文件

4“微軟雅黑”

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容