TypeRunner高性能 TypeScript 編譯器
TypeRunner 是一個高性能 TypeScript 編譯器。
Goals
- 解析器
- 類型檢查(作為 CLI 和庫)
- 語言服務(wù)器
- 交互式類型調(diào)試
- 用其他語言輸入信息
- (可選)轉(zhuǎn)譯為 JavaScript
- (可選)JavaScript 中的 RTTI
- (可選)類型分析器
此外,使TypeScript類型檢查盡可能快,并為其他語言提供一個本地庫,這樣他們就可以使用TypeScript類型信息,而不需要JavaScript引擎,使各種用例,如JSON-Schema替換,ORM DSL,編碼信息(如Protocol Buffers模式)等等。
Non-goals
- 替代官方 TypeScript 編譯器
- 運行
作為整個官方 TypeScript 編譯器 (tsc) 的直接替代品,需要復(fù)制 tsc 的設(shè)計限制、錯誤和遺留決策。由于 TypeScript 已有 10 年的歷史,因此有許多功能在今天是不必要的,但為了兼容性而保留。該項目專注于 TypeScript 的一個更嚴(yán)格的子集,這意味著 TypeRunner 將不支持某些功能,例如 JSDoc 和幾個編譯器選項。
初始版本中的源代碼實際上只是一個概念證明。它由大約 30k LoC 組成,并顯示出非常有希望的結(jié)果。方法是使用 TypeScript 到字節(jié)碼的編譯器,然后在自定義虛擬機(jī)中運行字節(jié)碼。數(shù)據(jù)表明,這種方法可以使速度提高幾十倍到幾千倍。
TypeRunner 目前只支持非?;镜念愋捅磉_(dá)式:原語、變量聲明、(通用)函數(shù)聲明、一些類型函數(shù),如類型別名、(分布)條件類型、模板文字、數(shù)組/元組、索引訪問、聯(lián)合、以及一些其他東西。
TypeRunner 現(xiàn)下的開發(fā)幾乎停滯不前,更多的是一個實驗/概念證明。一旦項目通過社區(qū)獲得資金,開發(fā)將繼續(xù)。
評論
圖片
表情
