TypeScript 中的 checkJs
说明 checkJs 如何让 TypeScript 在 .js 文件里报告类型错误,以及它为什么等价于给所有 JS 文件加上 @ts-check。
#tech / dev
#resource / typescript
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: TypeScript MOC
- 配置入口: tsconfig 使用详解
- 并列概念: TypeScript 中的 allowJs, TypeScript 类型检查
TypeScript 中的 checkJs
一句话定义
checkJs 让 TypeScript 对项目中的 .js 文件也执行类型检查并报告错误。
核心机制 / 工作原理
官方文档明确说:
checkJsworks in tandem withallowJs
也就是说,它通常建立在 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 渐进迁移中的中间站
参考信息
- TSConfig
checkJs: https://www.typescriptlang.org/tsconfig/checkJs.html