tsrs Node API完全参考:同步与异步API构建你自己的TypeScript工具链

发布时间:2026/10/30 0:10:47

tsrs Node API完全参考:同步与异步API构建你自己的TypeScript工具链 【免费下载链接】tsrsRust port of the TypeScript 7 type checker项目地址https://gitcode.com/gh_mirrors/ts/tsrs点击查看免费下载tsrs 是 Rust 编写的 TypeScript 7 类型检查器其 npm 包tsrs同时提供完整的Node APItsrs/sync同步 API 与tsrs/async异步 API。两者可直接嵌入你的 Node.js 脚本、CLI 工具或 CI 流水线完成类型诊断、AST 遍历、模块解析、转译与构建编排助你快速构建自己的 TypeScript 工具链。快速安装一条命令接入 tsrs Node APItsrs 的 JS API 通过 npm 分发安装后即可在 Node.js≥16.20中使用pnpm add -D tsrs安装完成后根导出会给出版本信息const { version, typescriptVersion, typescriptCommit } require(tsrs); 主包会自动解析平台原生包tsrs/os-arch无需手动下载二进制详见 npm/README.md。tsrs Node API 导出子路径一览tsrs包按 TypeScript 7 官方包的子路径结构组织导出见 npm/tsrs/package.json子路径内容tsrs/sync同步调用APIMessagePack 走服务端 stdiotsrs/async返回 Promise 的异步APIJSON-RPCtsrs/ast含/is、/factory、/utils、/scanner、/visitor、/cloneAST 类型、守卫函数、工厂与遍历tsrs/fs、tsrs/proto文件系统回调 / 请求文件系统、协议类型tsrs/path强类型路径构造器与工具tsrs/vscodecreateTypeScriptModuleLoader与编辑器 SDK 类型所有子路径均附带类型声明配合tsconfig.schema.json/jsconfig.schema.json可直接做类型化开发。同步 API三行代码拿到类型诊断同步 API 适合脚本和一次性任务。构造API时它会拉起tsrs --api服务进程import { API } from tsrs/sync; const api new API({ cwd: process.cwd() }); // tsserverPath 可覆盖默认二进制 const snapshot api.createSnapshot({ openProjects: [/abs/path/tsconfig.json] }); const project snapshot.getConfiguredProject(/abs/path/tsconfig.json); console.log(project.program.getSemanticDiagnostics(/abs/path/src/index.ts)); project.program.emit(); // 按项目的编译器选项输出 api.close();核心对象链路是createSnapshot→Project→Programapi.createSnapshot(params)建立一次项目集合快照params支持openProjects、userPreferences等snapshot.updateSnapshot(...)可在文件变更后增量更新project.program上可调用getSemanticDiagnostics、getSyntacticDiagnostics、emit、emitToString等方法。异步 API基于 Promise 与资源自动释放异步 API 与同步版一一对应但每个调用返回 Promise适合长驻服务import { API as AsyncAPI } from tsrs/async; const api new AsyncAPI({ cwd: process.cwd() }); const snapshot await api.createSnapshot({ openProjects: [/abs/path/tsconfig.json] }); const diagnostics await snapshot .getConfiguredProject(/abs/path/tsconfig.json)! .program.getSemanticDiagnostics(/abs/path/src/index.ts); await api.close();资源管理细节值得注意异步Snapshot、Program、BuildOrchestrator实现了Symbol.asyncDispose支持await using自动等待清理完成TypeScript 消费端需要esnext.disposable或更新 lib来支持Symbol.dispose/Symbol.asyncDispose声明在旧版 Node 上缺少 dispose 符号时请显式调用close()/dispose()。一个典型差异若服务进程意外退出异步 API 会让所有挂起及后续请求以API server connection lost: ...开头的错误快速失败而不是无限挂起见 npm/sdk/patches/ 中的补丁说明。实战技巧批量请求、计时与文件系统回调批量请求API.batch可把多个请求合并发送减少往返。注意同步 API 的 generator 实例是单次使用的跨batch复用会抛出Cannot execute the same generator instance more than once与上游 TypeScript 行为一致。计时快照设置collectTiming: true或环境变量TS_API_TIMING_DIR指向非空目录后客户端close()时会写出一份包含客户端与服务端计时数据的 JSON 快照。文件系统回调APIOptions支持fsFileSystemCallbacks与useCaseSensitiveFileNames让类型检查运行在你自定义的文件系统之上也可用tsrs/fs的createFileSystem构造纯内存的请求文件系统import { createFileSystem, type FileSystemCallbacks } from tsrs/fs; import { API, type APIOptions } from tsrs/sync; const requestFileSystem createFileSystem([[/a.ts, export {};]]); const options: APIOptions { cwd: /, tsserverPath: /path/to/tsrs, fs: callbacks };完整类型化示例可参考 npm/sdk/smoke/typed.mts。177 个方法覆盖矩阵与状态速查tsrs 的 API 协议与 TypeScript 7 原生 API 完全对齐共177 个方法58 个 core 119 个 checker 方法。官方文档 docs/NODE_API.md 末尾附有完整覆盖矩阵状态含义如下supported有核心 Rust 测试覆盖的真实编译器会话行为partial已实现并分派但仅由上游 Node 测试套件或组件级检查覆盖或存在已记录的差异not implemented如startCPUProfile、stopCPUProfile、saveHeapProfile三个性能剖析方法暂未实现。未实现的方法会返回显式api: unsupported: ...错误绝不假装成功。方法级请求统计见 npm/sdk/METHODS.md在上游 SDK 套件中968/968 测试在 tsrs 上全部通过177 个方法中 170 个有成功响应。常用方法分组速览类别代表方法诊断getSemanticDiagnostics、getSyntacticDiagnostics、getDeclarationDiagnostics输出emit、emitToString、transpileModule、getDeclarationEmit符号/类型getSymbolAtPosition、getTypeAtPosition、typeToString、getCompletionsAtPosition模块解析createModuleResolver、resolveModuleName构建createBuildOrchestrator、build、buildReferences、cleanBuild配置parseCommandLine、readConfigFile、parseConfigFile常见问题与注意事项❓与 TypeScript 5 的createProgram兼容吗不兼容。tsrs 不提供一次性 CLI 包装对象协议来自 TypeScript 7 原生 API 移植客户端与服务端必须来自同一提交无版本协商。❓自动补全需要自动导入时怎么办先调用updateSnapshot并传prepareAutoImports附带要索引的文件再以includeSymbol: true调用getCompletionsAtPosition未准备的快照会收到客户端错误。❓相对路径的编译选项如何解析快照程序和 transpile 请求支持原始编译选项其中相对选项路径基于 API 服务进程的当前目录解析initialize响应会报告caseSensitivity与currentDirectory。❓同步客户端崩溃后行为如何同步客户端不做补丁服务崩溃后下一次调用会立即抛出管道错误异步客户端则如前文所述以连接丢失错误快速失败。相关文件与延伸阅读官方使用文档docs/NODE_API.mdnpm 打包与 JS API 说明npm/README.mdSDK 方法清单与测试统计npm/sdk/METHODS.md同步客户端源码npm/tsrs/src/api/sync/api.ts异步客户端与连接丢失补丁npm/tsrs/src/api/async/client.ts客户端选项定义npm/tsrs/src/api/options.tsRust 服务端核心crates/tsrs_api/src/lib.rs、crates/tsrs_api_transport/src/lib.rs掌握tsrs/sync与tsrs/async这两套 API你就能在 CI 门禁、代码生成器、LSP 之外的工具场景里把 TypeScript 7 级别的类型能力无缝集成进自己的工具链 赞分享【免费下载链接】tsrsRust port of the TypeScript 7 type checker项目地址https://gitcode.com/gh_mirrors/ts/tsrs点击查看免费下载相关推荐Hiring Agent配置指南Ollama与Gemma3模型本地部署最佳实践Hiring Agent配置指南Ollama与Gemma3模型本地部署最佳实践 Hiring Agent是一款强大的AI简历评估工具能够从PDF中提取结构化人工智能AI 应用本地部署MusE性能优化技巧如何配置实时优先级和内存设置以获得最佳性能MusE性能优化技巧如何配置实时优先级和内存设置以获得最佳性能 MusE是一款功能强大的数字音频工作站支持音频和MIDI录制与编辑。对于音乐制作人和音频工程音视频TypeScript 原生 API 新增 typescript-eslint 所需检查器 API同步与异步接口全面解析TypeScript 原生 API 新增 typescript eslint 所需检查器 API同步与异步接口全面解析 导读 2026 年 9 月 14 日文档教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/30 0:10:47

基于强化学习与DeepSeek的零售动态补货调优实战

简介:《零售业库存革命:基于强化学习的DeepSeek动态补货模型调优指南》是一份面向零售业运营管理人员与算法工程师的动态补货技术文档,聚焦传统库存管理在需求波动与复杂供应链下响应迟缓的痛点。文档系统梳理强化学习与补货决策的融合路径&a…

2026/10/30 0:10:47

Zonotope虚拟电厂分布式资源聚合调控:代码复现与工程实践

简介:针对虚拟电厂中分布式资源广域聚合调控问题,这份资源以奇诺多面体(Zonotope)为核心工具,完整复现了相关论文方法并给出可运行的Python实现。资源面向从事智能电网、能源管理与优化控制的研究人员和技术人员&#…

2026/10/30 0:05:46

全栈Transformer学习路线:从原理到工业部署

1. 项目概述:为什么需要全栈Transformer学习路线?2026年的AI技术格局已经清晰表明,Transformer架构不再是NLP领域的专属工具,而是渗透到计算机视觉、语音识别、机器人控制等各个领域的基础设施。我在过去三年辅导过200学员转型大模…

2026/10/30 1:10:52

ESP在线开发工具全攻略:浏览器即开即用,告别本地工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 1:10:52

嵌入式I2C外设调试全攻略:从硬件排查到软件时序的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 1:10:52

2023年AFM摩擦纳米发电机论文盘点:材料与器件机理主线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 1:10:52

ESP32-S3开发环境GDB报错排查:从No match到工具链修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 1:10:52

双协议定位芯片:打通Apple Find My与Google Find My Device

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 1:05:51

ESP32-P4+C5双芯架构:带屏网关的协议转换与边缘计算实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑