TypeScript 项目不可或缺的 AI 编码反馈循环
学习使用 TypeScript 构建 AI 编码反馈循环,掌握类型检查、测试和 pre-commit Hook,让 AI 智能体持续正确工作。
本页目录
使用 AI 编码智能体时,尤其是让它独立运行时,需要建立反馈循环,让 AI 能验证自己的工作。进行 AFK 编码时,反馈循环尤为重要,例如使用 Ralph Wiggum.
1. 设置 TypeScript 与类型检查
TypeScript 本质上是提供给 AI 的免费反馈,应优先于 JavaScript 使用。
创建一个 typecheck 脚本,放在 package.json:
{"scripts": {"typecheck": "tsc"}}
TypeScript 能发现一些错误,否则 AI 只有在浏览器中测试时才可能察觉。
想继续深入: 加入“面向真正工程师的 AI 编码”候补名单
2. 添加自动化测试
使用类似 Vitest 的测试框架检查逻辑错误:
{"scripts": {"test": "vitest"}}
覆盖核心功能的基础单元测试,可以让 AI 始终沿正确方向工作。
3. 安装 Husky 配置 Pre-commit Hook
Husky 会在每次提交前强制运行反馈循环。
安装并初始化 Husky:
pnpm install --save-dev huskypnpm exec husky init
创建一个 .husky/pre-commit 文件,用来运行全部检查:
npx lint-stagednpm run typechecknpm run test
任何步骤失败,提交都会被阻止,AI 也会收到错误消息。
另一个强大的反馈循环,是确保 LLM 能访问本地运行的开发服务器,从而检查前端。 查看这段视频 了解设置方式。
4. 设置自动代码格式化
使用 lint-staged with Prettier 在提交前自动格式化代码。
安装 lint-staged:
pnpm install --save-dev lint-staged
配置 .lintstagedrc:
{"*": "prettier --ignore-unknown --write"}
这会对所有暂存文件运行 Prettier,并自动重新暂存。此后所有 AI 生成代码都会符合格式规范。
还可以在这里运行 ESLint ,因为它与 lint-staged 配合良好。
为什么这对 AI 有效
AI 智能体不会因重复而沮丧。代码未通过类型检查或测试时,智能体只会再次尝试。因此反馈循环——尤其是 pre-commit Hook——对 AI 驱动开发非常强大。