TypeScript 中的 checkJs

说明 checkJs 如何让 TypeScript 在 .js 文件里报告类型错误,以及它为什么等价于给所有 JS 文件加上 @ts-check。

#tech / dev #resource / typescript #type / concept #status / growing

[!info] related notes

TypeScript 中的 checkJs

一句话定义

checkJs 让 TypeScript 对项目中的 .js 文件也执行类型检查并报告错误。

核心机制 / 工作原理

官方文档明确说:

  • checkJs works in tandem with allowJs

也就是说,它通常建立在 JS 文件已经被纳入 program 的前提上。

开启:

{
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true
  }
}

之后,TypeScript 就会开始在 .js 文件里报类型错误。

官方文档还直接给出一个等价理解:

  • 它相当于在所有纳入项目的 JS 文件顶部都加了 // @ts-check

最小例子 / 最小场景

在 JS 中开始报错

如果 JS 里写了:

module.exports.pi = parseFloat(3.142);

默认情况下 TypeScript 可能不会在这个 .js 文件上报错。

但打开 checkJs 后,就会开始按内建类型定义检查这类调用。

边界与易混淆点

它不负责“把 JS 文件纳入项目”

这层更接近:

它适合迁移期和混合仓库

如果团队还没把所有文件迁成 TS,但又希望 JS 文件开始接受类型约束,checkJs 很有价值。

它不要求你立刻全量迁完

所以它很适合作为:

  • JS -> TS 渐进迁移中的中间站

参考信息

创建于 2026/5/15 更新于 2026/5/27