tsrs.run
打开 Arena
RUST + WASM · 完全在浏览器中运行

tsrs —— 浏览器里的 TypeScript 类型显微镜。 读懂类型。
省略即陷阱。

你的 IDE 会把你真正需要的类型折叠成“...”。把文件粘贴到这里,tsrs.run 会展开每个节点,把 TS2322 变成逐行差异,并在你输入时让 Rust 编译器与 tsc 同场竞速。

多文件 · 0.2 s 内打开 · 数据不离开你的浏览器
1,412 个类型,一屏尽览 不截断、不安装、不上传
在你的 IDE 中
type UserSchema = { id: string; profile: Simplify<Merge<Extract< UserSchema, "profile">>>; … 12 more}

提示框恰好在精彩之处放弃。复制出来也没用——它早已被折叠。

在 TSRS.RUN 中
0.38 ms · 24 个节点
▾ UserSchema :
id : string
▾ profile : {
age : number
tags : Array<{ id: number }> ⚠ 实际: string · 30:18
▾ meta : {
locale : 'en-GB' | 'de-DE'
status : 'active' | 'invited'

同一个类型,每个节点,0.31 ms 内完整呈现——冲突已被标记。

0 已截断节点
4 压测预设
0.2 s 分享链接加载
3.2 ms 每次包检查
01 · 仪器

一个类型问题。
三种视角。

IDE 悬停框装不下的一切:完整类型树、被缩小到唯一差异叶子的错误,以及每个泛型的开销——直接印在各自行尾。

A TYPE X-RAY

点击任意符号,每个节点都会展开——基础类型、联合、数组,以及它的声明来源。没有概括,没有省略。

24 个节点 · 0.31 ms

B ERROR DIFF

TS2322 化为结构化差异。相同字段折叠成一行,唯一不匹配的叶子会同时标出实际类型与预期类型。

6 层 · 1 处变更

C COST LENS

每个类型定义都自带账单,就地显示:解析耗时与实例化次数。一旦超过 2 ms,行尾的闪电就会变成火焰。

0.38 ms 典型 · 6.40 ms 最差

02 · 预设 示例运行,本地重新计算

四种让编译器难受的方式。

每个预设都自带 tsconfig 和虚拟文件树。分享链接会捕获整套内容——文件、配置以及你正在查看的节点。

03 · NPM 检查

检查一个包
在安装之前。

Bundlephobia 衡量 JavaScript。却没人衡量一个包会对你的类型检查器做什么。输入包名,Worker 会从 jsdelivr 拉取它的 .d.ts 树,用两个引擎解析,并给出评级。

耗时 tsrs 与 tsc 的检查耗时,并排对比
体积 声明大小、文件数与导出符号
评级 一个字母:A+ 超轻到 F 类型炸弹
tsrs.run/npm/
NPM 类型报告 [email protected]
超轻 A+
类型检查
tsrs 3.20 ms / tsc 28.40 ms
声明 1.4 MB
导出 412
tsrs 检查 · 3.20 ms · A+ README 徽章
完整报告 · 64 个文件 打开
04 · 分享复现

复现就是链接。

多文件 Playground 熬不过一个 GitHub Issue。点击分享,编辑器状态——每个文件、tsconfig,以及你正在查看的那个节点——会被压缩进 URL 片段。两周后再打开,两个引擎当场重新竞速。

01 粘贴文件 任意数量的文件,外加你的 tsconfig。
02 指向节点 正在查看的类型也会随 hash 一起传递。
03 贴进 Issue 0.2 s 内打开。无需账户,无需上传。
tsrs.run/#c= N4IgbiBcCMA0IDMCWAbApgZygbWyJAdgCZoAeAdAC5bx…
你 刚刚评论
复现

类型 “InputUser” 不能赋值给 “UserSchema”——深入四层,仅一处叶子不同。

tags: Array<{
- id: string;
+ id: number;
}>
https://tsrs.run/#c=N4IgbiBcCMA0IDMCWAbApgZygbWyJAdgCZoAeAdAC5bxIC2ADgPYBOlABJQJ4NrvDsAqhjQsAygGMAFmjoBDdgF92CFkzrsA5OQD03Xhk0BuADoF6zNv3ZSuRFnMp9lq9Vt237jtMbNn9fACSBAwArpTCouwAvPxm7OxIRJDsGJQshADmpgQJsnKoKWkZBNnx7AxqyOgpwOUJcploKQShdABGojkJCZSNGCkAgiwOXAA8AklF6VlKAHzdPXRofbXsKEwScjWpM6VG7GCiSMhoyeztTEzocrmKi-flEixo3kSDlCkAIt6LaY6hAZaOQSShII6adgAHy0hDASCcRF8BEeBDMOh07AAKjJ2F4EBwkBhDtskuxgmEIiIWHjHHJyNjcXIMBgkJkCMsCBxOhsAO6JYm8mQvTgydGY6RoCQAayiUmZnCY7F522lFSqqDQVH62AADABdchk25EPFEiRMI40yjyjg2vgoBGibYC9hycW7EqZZVSTVCamSGTydhkXig4kKVodUTkcUe4Ju3KBL4AUVFfCklqiFpQKDkDBEEY4JhAw1GE3Y5Cr8xLFzQCFYfAR7BeIJkxJtRI9NwQDJxfDkLwICllaALIatXHYBCYJFSSvt7DoRPklGkrvhrPa6ESuQYeYkWrjBAxjL4THaACspYTiYQnFykExh7mp7yMpQH7v06k5MtUvKvBusSkTiJKwYYEwHqLkQJwIDYCpkCClAoFOz4Oq88HLhgq7riaqRoFaLo5nmBZnCoSBoCgRAYLGJ46GYoasBwFoEGkFxyEQoEpKBgb5DEcS5Ik5yaKEAD60CaLA5SVEw1TNIJPRuk0KQAEwAKzSUJvT9Ck2CTCJklKPqWlKcsqzWBsWw7JoaAEAAtAA4gAQlJhzHKc5wINsIhKKZfnlPkhRaPIpAAAJIYw6DkBadBSU8raIh8LRoPyPxOAAFJoqm6qpABs9m6tAhWSQAlP5-yUICKSaMh4I+P5chgHSLA1VIn4FpAGKRfuWqxTo4nQOQDClPFQmVPWoh2YeQJ1Np6bLDVRCDtKY1KTOYLIFsYLPrNIbyMF6ShGgsAVICUgpN5KC+Yo-m3eUeZpGIaB2SlaXeFlOX5SVJWaOV5QIHmmR7Z0FlHSdbpEMuBCXT5zhaaiZisex+KfOSIThKBAlzQkUxaINa37QUKA1aFEWkH+vUxeohOyfJtT1MpCkaf5OnA3pBk1UZigmYz5lyGsVnbAptkOS5blWiclFeXDAVCfdQnPK8SVowQqXsOlaCfblBVFb9-1CZV1XAqC9VjYjaukJYHAIKEBCm8+06DmovIZYCogpBSmPUqVPEBuBCg4y2KyhCwuTuzSCp29KM68rkCq8QHOSKH4BCeA4mXtJxoGlTkIAmXgAS0dQIDwExVgBP6oh8cGsRB3jxRZIsQUk56TcyRqOxBw0KnTm0nQsIsbNAmWcjjJzffRjSigLHzKwC4pSnrJsws1XZTmudCWgkPZqbIkv7kZJ5KSXNcrwEEPSgPIsStvMlGu-OURtArVpsQlvmhwk6SKLE1LXTF6RYE0EBTXtpgBm817SLS0I6TI7VIQwk0MtFgq1L4bSlttJ8bEIEHxbifK4NwL6MwSGEDAF0LgEPPpfVECQaHrGZJQZ6r0H5OEWIDXSi8EigwXqfQhl9OLQ3wWfW418zConzrAPA6dvBUBoPgRgzFOA8D4AIROQYFAuDUBobQehlGGByIxK2ijbb2x2rkaRmUI5+2rgHX2VcwLqMXi8KqYd2AR2TmYCRhcMCsWQJkcgl5IIEFLiAIOJZYoME1CwAA8gwMxGASw4J6CWPoLAmiUESewEsKYxBfVUiWVmWSQB0FnKEdAmTsliAAHJkAyaXRmJYSlEDKWgAASpga44QsEVJAM5O2RB0AsAKQ0kAjdQSZPBoUksM4UwjFYFiFgdtMHPgmYsk6IyMDSiQAwAAMkgdoABhGQMpVnHSmSAGZy46kpEmSMoumTsD6nKCnFEnj9QmRAHVI4UB8DEDILIkJE0RCUB+SQMc9lRBqBYCEvo7RQVwRCRgLgHRrhQFAPJH5hASAUBLvAR0asoD5XgDmNowSYAABZ4DDmWD8rOXFqQgFuiASJZLWi5kUEAA
412 行 · 3 个文件 · 0.2 s 内打开 在 Arena 中打开

粘贴一个文件。
看清整个类型。

无需账户、无需上传、无需安装——两个编译器已在标签页中。

打开 Arena
tsrs.run

面向 TypeScript 的类型显微镜——Type X-Ray 类型树、结构化错误差异与双引擎速度计,全部在浏览器中。

独立社区项目,由 @tsrs/wasm 与 oxc-project 驱动。TypeScript 是 Microsoft Corporation 的商标。基准与报告数字来自示例运行,并会在你的设备上重新计算。

© 2026 TSRS.RUN · 本地运行