Common Module
通用类型和工具模块,提供跨模块使用的基础类型定义、模型类和工具函数。
功能特性
类型别名
提供常用的类型别名,统一项目中的类型使用:
- Any:
any类型的别名 - Unknown:
unknown类型的别名 - Symbol:
symbol类型的别名
模型类
Id
用于处理只返回单个ID的接口响应。
import { Id } from '@core/common';
const result = new Id(123);
console.log(result.id); // 123
Ids
用于处理返回ID数组的接口响应。
import { Ids } from '@core/common';
const result = new Ids([1, 2, 3]);
console.log(result.ids); // [1, 2, 3]
工具函数
ObjectAssign
深度合并多个对象,支持递归合并嵌套对象。
import { ObjectAssign } from '@core/common';
const target = { a: 1, b: { c: 2 } };
const source = { b: { d: 3 }, e: 4 };
const result = ObjectAssign(target, source);
// result: { a: 1, b: { c: 2, d: 3 }, e: 4 }
特性:
- 递归合并嵌套对象
- 数组直接覆盖,不合并
- 自动处理 null 和 undefined
- 类型安全的泛型支持
SymbolToString
将 Symbol 类型转换为字符串。
import { SymbolToString } from '@core/common';
const sym = Symbol('test');
const str = SymbolToString(sym);
console.log(str); // "Symbol(test)"
使用场景
- 类型别名: 统一项目中的类型使用,提高代码可读性
- Id/Ids 模型: 处理后端返回的ID响应,避免直接使用 number 或 number[]
- ObjectAssign: 配置合并、默认值设置、对象深拷贝等场景
- SymbolToString: Symbol 类型的调试和日志输出
导入方式
import { Any, Unknown, Symbol, Id, Ids, ObjectAssign, SymbolToString } from '@core/common';