前后端类型对齐
创建: 2026-06-10 | 状态: 初稿
概述
DevFlow 前端 (TypeScript) 和后端 (Rust) 通过 Tauri IPC 和 JSON 序列化通信。两侧的类型定义必须保持一致。
类型映射
基础类型
| Rust |
TypeScript |
说明 |
String |
string |
文本字段 |
i64 |
number |
时间戳 (Unix timestamp) |
Option<String> |
string | null |
可空字段 |
Vec<String> |
string[] |
数组 (JSON 序列化) |
bool |
boolean |
布尔值 |
ID 类型
| 实体 |
Rust |
TypeScript |
格式 |
| 所有 ID |
String |
string |
UUID v4 |
所有 ID 统一使用 UUID v4 字符串,便于前后端传递。
枚举对齐
IdeaStatus (8 值)
| Rust |
TypeScript |
Draft |
"Draft" |
Evaluating |
"Evaluating" |
Scored |
"Scored" |
Hot |
"Hot" |
Promoted |
"Promoted" |
Parked |
"Parked" |
Merged |
"Merged" |
Discarded |
"Discarded" |
TaskStatus (6 值)
| Rust |
TypeScript |
Created |
"Created" |
BranchCreated |
"BranchCreated" |
InProgress |
"InProgress" |
ReviewReady |
"ReviewReady" |
Merged |
"Merged" |
Abandoned |
"Abandoned" |
WorkflowRunStatus (6 值)
| Rust |
TypeScript |
Pending |
"Pending" |
Running |
"Running" |
Paused |
"Paused" |
Completed |
"Completed" |
Failed |
"Failed" |
Cancelled |
"Cancelled" |
ProjectStatus (4 值)
| Rust |
TypeScript |
Active |
"Active" |
Paused |
"Paused" |
Completed |
"Completed" |
Archived |
"Archived" |
约定
- 枚举值使用 PascalCase 字符串,前后端保持一致
- JSON 字段(如
scores、tags)在 Rust 侧用 TEXT 存储 JSON 字符串,前端解析为对象/数组
- 时间字段统一用
i64 (Unix timestamp),前端用 new Date(ts * 1000) 转换
- 新增枚举值时,Rust 和 TypeScript 两侧必须同步更新