TypeRunner高性能 TypeScript 编译器

联合创作 · 2023-10-02 00:48

TypeRunner 是一个高性能 TypeScript 编译器。

Goals

  • 解析器
  • 类型检查(作为 CLI 和库)
  • 语言服务器
  • 交互式类型调试
  • 用其他语言输入信息
  • (可选)转译为 JavaScript
  • (可选)JavaScript 中的 RTTI
  • (可选)类型分析器

此外,使TypeScript类型检查尽可能快,并为其他语言提供一个本地库,这样他们就可以使用TypeScript类型信息,而不需要JavaScript引擎,使各种用例,如JSON-Schema替换,ORM DSL,编码信息(如Protocol Buffers模式)等等。

Non-goals

  • 替代官方 TypeScript 编译器
  • 运行

作为整个官方 TypeScript 编译器 (tsc) 的直接替代品,需要复制 tsc 的设计限制、错误和遗留决策。由于 TypeScript 已有 10 年的历史,因此有许多功能在今天是不必要的,但为了兼容性而保留。该项目专注于 TypeScript 的一个更严格的子集,这意味着 TypeRunner 将不支持某些功能,例如 JSDoc 和几个编译器选项。

初始版本中的源代码实际上只是一个概念证明。它由大约 30k LoC 组成,并显示出非常有希望的结果。方法是使用 TypeScript 到字节码的编译器,然后在自定义虚拟机中运行字节码。数据表明,这种方法可以使速度提高几十倍到几千倍。

TypeRunner 目前只支持非常基本的类型表达式:原语、变量声明、(通用)函数声明、一些类型函数,如类型别名、(分布)条件类型、模板文字、数组/元组、索引访问、联合、以及一些其他东西。

TypeRunner 现下的开发几乎停滞不前,更多的是一个实验/概念证明。一旦项目通过社区获得资金,开发将继续。

浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报