类型检查
type-checkers;衔接 typescript-essentials。
25 分钟
类型检查
TypeScript 的价值在 编译期类型检查——但现代框架常把 转译 交给 esbuild/SWC(快),把 类型检查 单独跑 tsc。本课对应路线图 type-checkers 节点,衔接 typescript-essentials。
学习目标
- 区分「转译 TS」与「类型检查」两条流水线
- 会配置
tsc --noEmit与tsconfig.json关键项 - 知道 CI 中 typecheck 与 build 的推荐顺序
两条流水线
开发保存
→ SWC/esbuild 去掉类型、转 JSX(快,可能跳过类型错误)
→ IDE tsserver 实时红线(开发反馈)
CI / 提交前
→ tsc --noEmit(全项目类型检查,不产出 js)
→ eslint(逻辑规则)
→ build(生产打包)
坑:本地 vite dev 能跑,但 CI tsc 失败——说明 不能只信 dev server。
tsconfig 要点
{
"compilerOptions": {
"strict": true,
"jsx": "react-jsx",
"moduleResolution": "bundler",
"noEmit": true,
"skipLibCheck": true
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}
| 选项 | 含义 |
|---|---|
strict | 开启 null 检查等严格模式 |
noEmit | 只检查不输出(配合 Vite/Next 内置转译) |
skipLibCheck | 跳过 .d.ts 检查,加快 CI |
深入语法见 typescript-essentials 各课;本课聚焦 工程接入。
package.json scripts
{
"scripts": {
"typecheck": "tsc --noEmit",
"build": "next build"
}
}
Next.js 项目:next build 可能 含类型检查(视配置);显式 typecheck script 更清晰。
与 javascript-core 的关系
js-types 讲运行时 typeof;TypeScript 是 静态 类型层。未学 TS 也可先 JS 写 react-essentials,但 platform 与 nextjs-essentials 默认 TS——建议并行推进。
渐进迁移
老 JS 项目:
allowJs: true混用- 关键模块改
.ts - 开
strict前用 临时标记技术债