返回

文章详情

tsc-ts:用 TypeScript 编写的 TypeScript

Hacker News2026年10月17日 17:10

tsc-ts 是 TypeScript 7.0.2 编译器(TypeScript-Go 或 tsgo)的实验性 TypeScript 移植,使用 scriptc 编译为本地代码。 安装 从 npm 安装编译器: npm install -D tsc-ts npx tsc-ts -p tsconfig.json tsc-ts 包从每个平台的可选依赖项运行本机可执行文件(@tsc-ts/darwin-arm64,@tsc-ts/linux-x64-gnu,……)。 参见 packages/tsc-ts 。 参见 CHANGELOG.md 以获取版本说明和 GitHub Releases 以获取包存档。 要为当前平台构建软件包: npm run pack:npm -w tsc-ts # packages/tsc-ts/dist/npm/*.tgz npm run pack:npm -w tsc-ts -- --check # 还安装 tarballs 并编译项目 -- --binary dist/tsc 打包现有的本地构建,相对于 packages/tsc-ts,而不是构建一个。 软件包 | 软件包 | 描述 | | --------- | --------- | | packages/tsc-ts | 编写于 TypeScript 的编译器,具备 tsc-ts 命令行和 --api 服务器。 | | packages/tsgo | tsgo 的参考构建(其命令行和每个阶段的驱动程序),与测试进行比较。 | 使用 Turborepo 运行的任务。 文档 apps/web 包含 tsc-ts 编译器指南。 npm run dev:web npm run build:web 要求 Node.js 24+ 和 npm Go 1.26 一个可以链接的 scriptc 主机:macOS、Linux 或 Windows,且可用 clang 进行链接。 构建 npm ci npm run fetch:upstream # 克隆固定提交的 tsgo npm run build # tsc-ts 的 Node 构建(packages/tsc-ts/dist)和文档站点 npm run build:oracle # packages/tsgo/dist 中的 tsgo 参考构建。 package.json 将 scriptc 固定为 0.3.5,并包含其 @scriptc/threads 包。任何其他版本都会导致构建失败。 编译器 packages/tsc-ts/src/compiler 是编译器,从 tsgo 7.0.2 移植为符合惯用 TypeScript 的版本。 每个部分都与 TypeScript 的测试语料库(大约 12,500 个文件,拆分多文件案例后的 17,000 个单元)中的 tsgo 进行比较: | 部分 | 与 tsgo 比较 | 状态 | | --------- | -------------------- | ------- | | 扫描器 | 语法树、值、错误、重新扫描、JSDoc | 所有文件匹配 | | 解析器和 AST 树、诊断、API 源文件编码 | 所有单元匹配 | | 绑定器 | 符号、表、流图、名称解析 | 所有单元匹配 | | 模块解析结果、包 ID、--traceResolution | 所有请求匹配 | | tsconfig.json 和程序 | --showConfig、--listFilesOnly、--explainFiles | 所有案例匹配 | | 命令行和选项 | 输出、错误、退出代码、--locale | 所有案例匹配 | | 诊断目录 | 消息、13 种翻译、输出格式 | 所有匹配 | | JavaScript 发射 | 输出的文件、39 种选项集 | 所有比较的单元匹配 | | 声明发射 | .d.ts 和 .d.ts.map 输出、声明错误 | 所有单元匹配 | | --build、--incremental | 输出、.tsbuildinfo、发射的文件、--watch | 所有场景匹配 | | 类型检查器 | 每个文件的诊断 | 所有文件匹配 | 语料库脚本位于 packages/tsc-ts/scripts(*-corpus.mjs)。 API 服务器 tsc-ts --api 提供与 TypeScript 7.0.2 的 tsc --api 相同的 API,通过 stdin 和 stdout,从而驱动 tsc --api 的工具(例如 scriptc)可以改为运行 tsc-ts。 npm run build -w tsc-ts node packages/tsc-ts/dist/tsc-ts/src/main.js --api --cwd path/to/project 本地构建从可执行文件的目录中读取库文件,或从 TSC_TS_LIB_DIR 中读取: npm run build:native -w tsc-ts # packages/tsc-ts/dist/tsc npm run build:native:dev -w tsc-ts # 未优化,更快的构建 TSC_TS_LIB_DIR=upstream/typescript-go/internal/bundled/libs packages/tsc-ts/dist/tsc -p path/to/project TSC_TS_BIN=packages/tsc-ts/dist/tsc 运行带有本地构建的 tsc-ts 测试。 该服务器对 tsc --api 7.0.2 的响应进行逐项检查,scriptc 通过使用任一构建相同的程序。 它在 tsc-ts 编译器上运行,无论是本地还是在 Node 下。 语言服务方法受支持:getCompletionsAtPosition、getJsDocTags、getDocumentationComment、getReferencesToSymbolInFile、getReferencedSymbolsForNode 和 getSignatureUsages。 与 tsc --api 一样,需要自动导入的补全(全局标识符、导入语句、详尽的 switch 案例)会报告补全列表需要自动导入。 分析方法(startCPUProfile、stopCPUProfile、saveHeapProfile)不受支持。 测试 npm test # 将 tsc-ts 与 tsgo 进行比较 npm run bench -w tsc-ts # 将 tsc-ts 的时间与 tsgo 和 TypeScript 的 JavaScript 编译器进行比较 npm run lint # oxlint npm run format # oxfmt 许可证 Apache-2.0。请参见 THIRD_PARTY_NOTICES.md 以获取 TypeScript-Go 和其他第三方通知。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡