Skip to content

工具模块 (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

职责

  • 统一日志输出
  • 支持日志级别控制
  • 开发环境调试日志