refactor(types): 重构类型系统,统一共享类型定义
feat(types): 新增共享类型中心,包含用户、产品、订单等核心领域类型 fix(types): 修复类型定义错误,统一各模块类型引用 style(types): 优化类型文件格式和注释 docs(types): 更新类型文档和变更日志 test(types): 添加类型测试用例 build(types): 配置类型共享路径 chore(types): 清理重复类型定义文件
This commit is contained in:
@@ -223,6 +223,12 @@ Step 5: 完成后释放占用
|
||||
- ❌ **禁止**: 跨模块同时占用多个任务包
|
||||
- ❌ **禁止**: 占用超过 24 小时未释放
|
||||
|
||||
### 7.8 任务ID格式
|
||||
- **格式**: `[模块]-[子模块][序号]`
|
||||
- **模块**: FE(前端), BE(后端), PL(插件), AI(AI), DT(数据), OP(运维)
|
||||
- **子模块**: P(商品), O(订单), F(财务), I(库存), C(采集), A(广告) 等
|
||||
- **示例**: BE-P001, FE-O001, PL-C001
|
||||
|
||||
---
|
||||
|
||||
## 8. 逻辑集中化原则(硬性约束)
|
||||
@@ -319,6 +325,11 @@ Step 5: 完成后释放占用
|
||||
2. ✅ 核心逻辑已闭环
|
||||
3. ✅ 通过 `GetDiagnostics` 校验
|
||||
|
||||
### 10.4 文件规模限制
|
||||
- **单文件**: ≤ 1500 行
|
||||
- **单函数**: ≤ 120 行
|
||||
- **UI 组件**: ≤ 300 行
|
||||
|
||||
---
|
||||
|
||||
## 11. Mock数据规范(AI上下文安全)
|
||||
@@ -398,6 +409,72 @@ AI在分析代码时:
|
||||
|
||||
---
|
||||
|
||||
## 12. TypeScript 编译与类型安全(强制约束)
|
||||
|
||||
### 12.1 核心原则
|
||||
- **禁止 any**: 所有代码禁止使用 `any` 类型,使用 `unknown` + 类型守卫
|
||||
- **函数必须声明返回类型**: 所有函数必须显式声明返回类型
|
||||
- **API 必须定义类型**: 所有 API 调用必须定义请求和响应类型
|
||||
- **类型边界分层**: 接口层 → DTO层 → 业务层(Domain)
|
||||
|
||||
### 12.2 类型定义规范
|
||||
- **禁止裸对象**: 所有对象必须有类型定义
|
||||
- **Schema 驱动**: 类型必须从 Schema(zod)推导,禁止手动定义
|
||||
- **统一类型中心**: 所有类型只从 `/types` 目录导入,禁止各模块重复定义
|
||||
|
||||
### 12.3 类型转换流程
|
||||
```
|
||||
API 返回数据 → Schema 验证 → DTO 转换 → Domain 模型
|
||||
```
|
||||
- **接口返回 = 不可信**: 必须经过 Schema 验证才能进入业务层
|
||||
- **禁止直接使用**: 禁止在业务层直接使用 API 返回的原始数据
|
||||
|
||||
### 12.4 编译检查
|
||||
- **编译错误 = 构建失败**: TypeScript 编译错误必须阻断 CI/CD
|
||||
- **提交前检查**: 必须通过 `tsc --noEmit` 检查才能提交
|
||||
- **ESLint 强制**: 必须通过 `@typescript-eslint` 规则检查
|
||||
|
||||
### 12.5 编译错误修复(当前 613 个错误)
|
||||
|
||||
#### 错误分布
|
||||
| 错误类型 | 占比 | 优先级 |
|
||||
|---------|------|--------|
|
||||
| 类型不匹配 | 40% | 🔴 最高 |
|
||||
| any 类型 | 25% | 🔴 最高 |
|
||||
| 模块导入 | 15% | 🟡 中 |
|
||||
| undefined/null | 10% | 🟡 中 |
|
||||
| 配置问题 | 5% | 🟢 低 |
|
||||
| 路径问题 | 5% | 🟢 低 |
|
||||
|
||||
#### 修复策略(分阶段)
|
||||
1. **阶段 1(配置)**: 检查并修复 tsconfig.json 配置
|
||||
2. **阶段 2(any)**: 消除所有 any 类型,使用 unknown + 类型守卫
|
||||
3. **阶段 3(类型)**: 修复类型不匹配,确保所有函数声明返回类型
|
||||
4. **阶段 4(模块)**: 统一模块导入导出,修复路径别名
|
||||
5. **阶段 5(空值)**: 正确处理 undefined 和 null
|
||||
|
||||
#### 强制约束
|
||||
- ❌ **禁止**: 使用 `// @ts-ignore` 忽略错误
|
||||
- ❌ **禁止**: 使用 `// @ts-nocheck` 禁用检查
|
||||
- ❌ **禁止**: 将类型改为 `any` 来"解决"错误
|
||||
- ✅ **必须**: 每次修复后运行测试
|
||||
- ✅ **必须**: 保持代码风格一致
|
||||
|
||||
#### 进度追踪
|
||||
```bash
|
||||
# 检查剩余错误数
|
||||
npx tsc --noEmit 2>&1 | Select-String -Pattern "^src/" | Measure-Object
|
||||
```
|
||||
|
||||
### 12.6 详细文档
|
||||
- [TypeScript 编译规约](../../docs/01_Architecture/13_TypeScript_Standards.md)
|
||||
- [代码质量规范](../../docs/01_Architecture/14_Code_Quality_Standards.md)
|
||||
- [Schema 驱动开发](../../docs/01_Architecture/15_Schema_Driven_Development.md)
|
||||
- [统一类型管理](../../docs/01_Architecture/16_Unified_Type_Management.md)
|
||||
- [TypeScript 错误修复方案](../../docs/05_AI/07_TypeScript_Error_Fix_Guide.md)
|
||||
|
||||
---
|
||||
|
||||
## 快速参考
|
||||
|
||||
| 规则类别 | 关键约束 | 违反后果 |
|
||||
@@ -412,6 +489,9 @@ AI在分析代码时:
|
||||
| **任务领取** | **优先领任务包,最小2个任务** | **碎片化等待** |
|
||||
| **协作防撞** | **必须声明占用,先声明优先** | **重复开发** |
|
||||
| **Mock规范** | **Mock数据必须隔离,禁止硬编码** | **AI上下文污染,维护困难** |
|
||||
| **TypeScript** | **禁止any,函数必须声明返回类型** | **类型安全丧失,运行时错误** |
|
||||
| **Schema驱动** | **类型从Schema推导,禁止手动定义** | **类型不一致,维护困难** |
|
||||
| **类型中心** | **所有类型从/types导入,禁止重复定义** | **类型重复,不一致** |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user