AIHero

    TypeScript 项目不可或缺的 AI 编码反馈循环

    学习使用 TypeScript 构建 AI 编码反馈循环,掌握类型检查、测试和 pre-commit Hook,让 AI 智能体持续正确工作。

    Matt Pocock
    Matt Pocock
    源代码
    本页目录

    使用 AI 编码智能体时,尤其是让它独立运行时,需要建立反馈循环,让 AI 能验证自己的工作。进行 AFK 编码时,反馈循环尤为重要,例如使用 Ralph Wiggum.

    1. 设置 TypeScript 与类型检查

    TypeScript 本质上是提供给 AI 的免费反馈,应优先于 JavaScript 使用。

    创建一个 typecheck 脚本,放在 package.json:

    {
    "scripts": {
    "typecheck": "tsc"
    }
    }

    TypeScript 能发现一些错误,否则 AI 只有在浏览器中测试时才可能察觉。

    2. 添加自动化测试

    使用类似 Vitest 的测试框架检查逻辑错误:

    {
    "scripts": {
    "test": "vitest"
    }
    }

    覆盖核心功能的基础单元测试,可以让 AI 始终沿正确方向工作。

    3. 安装 Husky 配置 Pre-commit Hook

    Husky 会在每次提交前强制运行反馈循环。

    安装并初始化 Husky:

    pnpm install --save-dev husky
    pnpm exec husky init

    创建一个 .husky/pre-commit 文件,用来运行全部检查:

    npx lint-staged
    npm run typecheck
    npm 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 驱动开发非常强大。