【RPU-A】Babel 即將增加 TypeScript 支持
類別
周邊動態/Related Project Update
置信度
Announcement
起始時間
2017-05-27
更新(2017-06-28)
Babylon 對 TypeScript 的支持已經完成,並發布於 7.0.0-beta.16 版本中。
內容
雖然聽上去有些奇怪,但實際上確實就是字面意思所說的那樣。
從概念上而言,Babel 是一個通用的 JavaScript*-to-JavaScript 的預處理工具(除了 ECMAScript 語言規範及其提案外,也支持非 ECMAScript 的私有語言擴展,例如 Flow、JSX 等),而 TypeScript 是作為 JavaScript 超集的並且 Targeting JavaScript 的編程語言(所以也可以理解為 JavaScript 的語言擴展,但同時具備官方的工具鏈支持)。
所以就概念本身而言,Babel 支持 TypeScript 是無可厚非的。但由於 TypeScript 帶有官方工具支持,並且工具本身具備豐富的編譯選項,因此一定程度上 TypeScript(的官方工具)與 Babel 在一定程度上產生了功能衝突。
關於兩者的集成問題,在 TypeScript 和 Babel 中都有相關討論。
最近,增加對 TypeScript 的支持正在進行中,同時也已經列入到 Babylon 的 README 當中。
不過,實際影響可能十分有限,TypeScript(的官方工具)本身支持了絕大多數 ECMAScript 的特性及其提案,以及私有的擴展如 JSX。同時也包含了 Babel 的絕大多數功能,例如提供了 Transform API 實現自定義的代碼生成方式,甚至還提供了 Language Service Plugin 用來實現自定義語法的編輯器支持。
相關鏈接
- TypeScript 官網:TypeScript - JavaScript that scales.
- Babel 官網:Babel · The compiler for writing next generation JavaScript
- TypeScript 的 GitHub Repo:Microsoft/TypeScript
- Babel 的 Github Repo:babel/babel
- Babylon 的 Github Repo:babel/babylon
- TypeScript 對 Babel 支持的 Tracker:Babel plugin for typescript · Issue #11441 · Microsoft/TypeScript
- Babel 對 TypeScript 支持的 Tracker:babel-plugin-transform-typescript-strip-types · Issue #5201 · babel/babel
- Babylon 對 TypeScript 支持的 Tracker:Typescript Plugin · Issue #320 · babel/babylon
- Babylon 增加對 TypeScript Parser 支持的 PR:WIP: TypeScript parser by andy-ms · Pull Request #523 · babel/babylon
- Babylon 正式宣布對 TypeScript 功能支持的 Commit:link to contributing [skip ci] · babel/babylon@ed1809c
推薦閱讀:
※ThinkJS 3.0 如何實現對 TypeScript 的支持
※如何看待 Angular 2.0 使用的 AtScript 是 TypeScript 的超集?
※VS Code 1.14更新日誌
※TypeScript入門
※是時候再給TypeScript一次機會了【譯】
TAG:TypeScript | Babel |