Explorar o código

docs(architecture): 修正Schema类型导出说明

移除了不必要且实际不被使用的类型推断导出说明:

**修正内容**:
- Schema只用于请求参数验证和响应定义
- 不需要导出 z.infer 推断的TypeScript类型
- UI包通过RPC直接从API路由推断类型
- @hono/zod-openapi自动生成OpenAPI文档
- 前端使用hc.rpc()自动获得类型安全的客户端

**变更**:
- 添加"类型使用说明"章节,明确说明不需要导出推断类型
- 更新检查清单:改为"Schema不导出推断类型"

🤖 Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname hai 3 semanas
pai
achega
09f3b26371
Modificáronse 1 ficheiros con 17 adicións e 4 borrados
  1. 17 4
      docs/architecture/backend-module-package-standards.md

+ 17 - 4
docs/architecture/backend-module-package-standards.md

@@ -386,19 +386,32 @@ export const CreateChannelSchema = z.object({
 
 // 更新渠道DTO(所有字段可选)
 export const UpdateChannelSchema = CreateChannelSchema.partial();
+```
+
+### 5.2 类型使用说明
+
+**重要**: Schema只用于请求参数验证和响应定义,**不需要导出推断的TypeScript类型**。
 
-// 类型推断
+```typescript
+// ❌ 不需要:导出推断类型(实际项目中不会被使用)
 export type Channel = z.infer<typeof ChannelSchema>;
 export type CreateChannelDto = z.infer<typeof CreateChannelSchema>;
 export type UpdateChannelDto = z.infer<typeof UpdateChannelSchema>;
 ```
 
-### 5.2 关键要点
+**原因**:
+- UI包通过RPC直接从API路由推断类型
+- `@hono/zod-openapi` 自动生成OpenAPI文档
+- 前端使用 `hc.rpc()` 自动获得类型安全的客户端
+
+**正确做法**:只导出Schema常量,不导出推断类型。
+
+### 5.3 关键要点
 
 - **使用 `.openapi()` 装饰器**: 添加描述和示例
 - **使用 `z.coerce.date()`**: 处理日期字符串自动转换
 - **使用 `.nullable().optional()`**: 处理可空字段
-- **类型推断导出**: 导出推断的TypeScript类型
+- **不导出推断类型**: 类型由RPC自动推断,不需要手动导出
 
 ## 6. 软删除规范
 
@@ -663,7 +676,7 @@ override async create(data: Partial<Channel>, userId?: string | number): Promise
 - [ ] Service使用 `override` 关键字
 - [ ] 软删除实现:使用 `status` 字段
 - [ ] Schema使用 `.openapi()` 装饰器
-- [ ] 导出类型推断:`export type * = z.infer<typeof *Schema>`
+- [ ] Schema不导出推断类型(类型由RPC自动推断)
 - [ ] 路由使用 `OpenAPIHono` 和 `AuthContext`
 - [ ] 测试数据工厂使用时间戳保证唯一性
 - [ ] vitest.config.ts 设置 `fileParallelism: false`