👇 今日要闻
打破信息壁垒,走近全球前端。Hello 大家好,我是林语冰。
最近,TS 团队官宣 TypeScript 7 正式首发,这是 TypeScript 的第 7 个主版本,更是基于 Go 语言移植的第 1 个主版本。
与此同时,尤雨溪的团队也加入了 TypeScript 7 的先锋行列,Vite 和 Rolldown 底层依赖的 Oxc 编译器就是其一。
Oxc 主席官宣,Oxc 全家桶的代码质检工具 Oxlint,即 ESLint 的 Rust 移植替代品,现在正式采用 tsgolint,用于 类型感知规则 的代码质检。

本期我们就来看一下 Oxlint + tsgolint 这种 Rust + Go 的原生语言梦幻联动,如何对 ESLint 等传统 JS 工具降维打击?
👉 类型感知规则
你可能会有点困惑,代码质检不是直接通过 ESLint 或 Oxlint 静态分析就能检查不合规的语法吗,为什么还要 TypeScript 介入呢?
这是因为代码质检范畴有一种 类型感知规则,它们无法通过 ESLint 提供的 AST(抽象语法树)直接实现。
类型感知规则需要 TypeScript 辅助支持,依赖静态类型系统提供更多的类型信息。
举个栗子,在 if 条件分支中误用 Promise 就是一种常见的反模式:

这里,如果你忘记使用 await,那么 if 条件就始终是一个 Promise 对象,隐式转换结果恒等于 true。
对此,我们可以集成 no-misused-promises 规则来提供代码质保,但这条规则既需要 ESLint 提供 AST 信息,也需要 TypeScript 提供静态类型信息,所以它属于 类型感知规则。
以前,类型感知规则一般采用 ESLint + typescript-eslint 组合来实现,但它们主要基于 JS 和 TS 这两种脚本语言,性能一般。
随着 Rust 移植的 Oxlint 日益成熟,以及 Go 驱动的 TypeScript 7 正式发布,尤雨溪团队希望充分榨干原生语言的性能优势。
因此,Oxc 全家桶继续推出了 tsgolint 类型感知引擎,辅助 Oxlint 支持类型感知规则。
👉 tsgolint 基本用法
在 Oxc 生态中,代码质检现在依赖两个原生语言工具:
- Oxlint:ESLint 的 Rust 移植替代品,它负责处理遍历文件和配置,支持非类型感知规则,提供代码质检报告
- tsgolint:Go 和 TypeScript 7 驱动的类型感知代码质检引擎,它负责构建和执行类型感知规则,将类型信息提供给 Oxlint
⚠️ 注意,tsgolint 直接基于 TypeScript 7 构建,所以要求你的项目中 TypeScript 版本至少为 v7。
然后,我们需要安装这两个开发依赖:

环境准备和依赖安装完毕后,tsgolint 支持两种使用方式,一种是通过 CLI 命令行终端界面:

另外一种方式是通过 Oxlint 的 根配置文件 启用:

⚠️ 注意,第一种 CLI 方式的优先级更高,即使你在第二种根配置文件中设置 typeAware: false 禁用 tsgolint,运行 oxlint --type-aware 命令也会执行类型感知规则。
此外,第二种配置文件方式要求必须在 .oxlintrc.json 或 oxlint.config.ts 等 Oxlint 根配置文件 中设置,嵌套配置文件中不应该设置这些字段。
配置完毕后,你就可以按需自定义类型感知规则了,配置方式和 Oxlint 其他规则一样,同时支持和 typescript-eslint 相同的额外选项。
举个栗子,以下是若干类型感知规则的自定义示例:

这样,你的项目就能享受 ESLint + typescript-eslint 同款代码质检,同时通过 Oxlint + tsgolint 获得 Rust + Go 原生语言赋予的极致性能。
👉 更多信息
tsgolint 在之前的 Alpha 阿尔法阶段就提供了 43 条类型感知规则,而现在新增了 16 条规则,目前已经支持 69 条规则,只比 typescript-eslint 少了 2 条规则,后续版本大概会百分百兼容。
此外,tsgolint 的兼容性与 TypeScript 特定版本强相关,所以通过版本号来对应:
md
v7.0.2000
^^^^^^ TS 版本号
^^^ tsgolint 版本号
这里,v7.0.2000 由 TypeScript 版本号和 tsgolint 的修订号共同组成,前几位用于对齐 TypeScript 特定版本,后几位是 tsgolint 的修订号,比如 tsgolint 的下个补丁版本是 v7.0.2001。
之后,如果 TS 版本更新,那么 tsgolint 的前几位版本号也会同步更新,同时归零后面的修订号。
另一个更强大的功能是,Oxlint 现在支持报告每个规则的执行时间,包括原生规则和类型感知规则。
使用 --debug timings 可以找到最耗时的规则,在终端中可视化规则的耗时跑分。
这里我们使用 Markdown 表格方便展示:
| 规则 | 耗时(ms) | 调用次数 | 来源 |
|---|---|---|---|
| typescript/unbound-method | 108.620 | 12450 | type-aware |
| eslint/no-unused-vars | 2.187 | 372 | native |
| vitest/expect-expect | 0.951 | 4682 | native |
| oxc/no-map-spread | 0.383 | 12545 | native |
这里,native 原生规则在 Oxlint 内部运行,而 type-aware 类型感知规则由 tsgolint 运行。
除了功能的完善,tsgolint 的性能也不可小觑,以 VSCode 等三个大型开源项目的性能跑分为例:
| 源码仓库 | ESLint | tsgolint | 跑分 |
|---|---|---|---|
| vscode | 83.2s | 6.96s | 12x |
| typescript | 27.2s | 1.94s | 14x |
| vuejs | 12.3s | 0.95s | 13x |
由表可得,tsgolint 的速度保守估计比 ESLint + typescript-eslint 快至少 10+ 倍。
👇 重点总结

尤雨溪团队的 Oxc 全家桶再添新工具,Oxc 主席官宣,Oxlint 采用 tsgolint 作为类型感知引擎,全面支持类型感知规则的代码质检。
tsgolint 基于 Go 驱动的 TypeScript 7 实现,现在 Oxlint + tsgolint 将取代 ESLint + typescript-eslint,而且性能暴涨 10 倍以上。
👍 以上就是本期《前端日报》的全部内容了,如果读完对你有所帮助,可以按赞打卡、在看推荐或转发分享。
🙏 已经关注我的粉丝们,我们下期再见啦,掰掰~~

👇 参考文献:
- 🔗 tsgolint 官方博客 :oxc.rs/blog/2026-0...
- 🔗 oxlint 官方文档 :oxc.rs/docs/guide/...