工具模块 (Utils)
5个工具模块,TypeScript 实现 | 文件位于
web/src/utils/
架构概览
utils/
├── char-utils.ts ← 汉字工具(拼音处理、多音字等)
├── date-utils.ts ← 日期工具(格式化、比较、连续天数计算)
├── format-utils.ts ← 格式化工具(数字、百分比等)
├── array-utils.ts ← 数组工具(去重、排序、分组等)
└── logger.ts ← 日志工具char-utils.ts — 汉字工具
文件: web/src/utils/char-utils.ts
职责
- 拼音解析(数字声调 → 带声调拼音)
- 多音字处理(主音 vs 辅音)
- 汉字笔画数获取
- 部首提取
多音字规则
- 500个汉字中部分存在多音字,需区分主音和辅音
- 界面上允许切换到其他拼音
- 辅音也需要词组说明且可以有多个
- 拼音标注包含1-4声和轻声(无声调标记=第5声),如"的"的"de"标为de5
- 每个读音必须包含造句示例
date-utils.ts — 日期工具
文件: web/src/utils/date-utils.ts
职责
- 日期格式化(使用
toISOString().slice(0, 10)生成统一YYYY-MM-DD格式) - 日期比较(避免
toDateString()的浏览器/时区差异) - 连续天数计算
- 复习间隔计算
format-utils.ts — 格式化工具
文件: web/src/utils/format-utils.ts
职责
- 数字格式化
- 百分比格式化
- 时长格式化
array-utils.ts — 数组工具
文件: web/src/utils/array-utils.ts
职责
- 数组去重
- 排序
- 分组
- 随机抽取(Fisher-Yates 洗牌)
logger.ts — 日志工具
文件: web/src/utils/logger.ts
职责
- 统一日志输出
- 支持日志级别控制
- 开发环境调试日志