必须在.cursor/rules/typescript.mdc中配置yaml front matter与typescript严格规则,启用rules engine后,ai补全会强制添加显式类型标注(如as number),确保符合strict: true及泛型、接口等规范。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让 Cursor 的 AI 补全和生成代码严格遵循 TypeScript 项目规范,避免出现 any 类型、缺失类型标注、错误的泛型写法或违背 strict 模式的代码,必须通过配置 Rules 显式声明 TypeScript 约束,而不是依赖默认行为或口头提示。
创建规则文件结构
在项目根目录下新建 `.cursor/rules` 文件夹(注意是 rules 目录,不是 .cursorrules 单文件);【不要用已弃用的 .cursorrules 文件】。
进入该目录,新建一个名为 typescript.mdc 的文件。
这个文件名不重要,但后缀必须是 .mdc,且内容必须以 YAML front matter 开头。
写入 TypeScript 全局约束规则
在 typescript.mdc 中粘贴以下内容:
```markdown
---
description: TypeScript 严格类型规范
globs: ["**/*.ts", "**/*.tsx"]
alwaysApply: false
---
## 类型安全强制要求
- 所有函数必须显式声明返回类型,禁止省略(包括箭头函数)
- 变量初始化时必须推导出具体类型;若无法推导,需手动标注,禁用 `any`、`object`、`Function`
- 泛型约束必须完整书写,如 `T extends Record
- 接口与类型别名统一使用 `type` 声明(除需要继承的接口外),命名使用 PascalCase
- `strict: true` 必须启用,所有 `tsconfig.json` 中的 strict 相关选项均视为开启状态
```
保存后,该规则只在匹配 `.ts` 和 `.tsx` 文件时自动激活,不会污染 JSON 或配置文件上下文。
启用 Rules 引擎并验证
打开 Cursor 设置 → Editor → AI → 勾选 Enable Rules Engine。
重启编辑器。
打开任意 `.ts` 文件,在空行输入:const user = { name: "Alice" };,然后按下 Ctrl+K 并输入“给 user 添加 age 字段,类型为 number”,观察 AI 是否补全为 const user = { name: "Alice", age: 0 as number }; 而不是 age: 0(后者会触发类型推导为 literal type,不符合泛型/接口复用场景)。
若补全结果含 as number 或显式类型标注,则规则已生效;若仍返回无类型字段,检查 globs 是否拼写错误,或确认文件是否被 .gitignore 排除导致 Cursor 未索引。










