A TYPE X-RAY
点击任意符号,每个节点都会展开——基础类型、联合、数组,以及它的声明来源。没有概括,没有省略。
24 个节点 · 0.31 ms
你的 IDE 会把你真正需要的类型折叠成“...”。把文件粘贴到这里,tsrs.run 会展开每个节点,把 TS2322 变成逐行差异,并在你输入时让 Rust 编译器与 tsc 同场竞速。
type UserSchema = { id: string; profile: Simplify<Merge<Extract< UserSchema, "profile">>>; … 12 more}提示框恰好在精彩之处放弃。复制出来也没用——它早已被折叠。
同一个类型,每个节点,0.31 ms 内完整呈现——冲突已被标记。
IDE 悬停框装不下的一切:完整类型树、被缩小到唯一差异叶子的错误,以及每个泛型的开销——直接印在各自行尾。
点击任意符号,每个节点都会展开——基础类型、联合、数组,以及它的声明来源。没有概括,没有省略。
24 个节点 · 0.31 ms
TS2322 化为结构化差异。相同字段折叠成一行,唯一不匹配的叶子会同时标出实际类型与预期类型。
6 层 · 1 处变更
每个类型定义都自带账单,就地显示:解析耗时与实例化次数。一旦超过 2 ms,行尾的闪电就会变成火焰。
0.38 ms 典型 · 6.40 ms 最差
每个预设都自带 tsconfig 和虚拟文件树。分享链接会捕获整套内容——文件、配置以及你正在查看的节点。
Bundlephobia 衡量 JavaScript。却没人衡量一个包会对你的类型检查器做什么。输入包名,Worker 会从 jsdelivr 拉取它的 .d.ts 树,用两个引擎解析,并给出评级。
多文件 Playground 熬不过一个 GitHub Issue。点击分享,编辑器状态——每个文件、tsconfig,以及你正在查看的那个节点——会被压缩进 URL 片段。两周后再打开,两个引擎当场重新竞速。
类型 “InputUser” 不能赋值给 “UserSchema”——深入四层,仅一处叶子不同。
无需账户、无需上传、无需安装——两个编译器已在标签页中。