createStableKey()
function createStableKey(value, label?): string;
Defined in: packages/utils/src/object/createStableKey.ts:76
把任意可序列化的值转成稳定字符串 key,用于「内容是否变化」的判定。
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | unknown | undefined | 待序列化的值 |
label | string | 'Value' | 错误信息前缀,用于让调用方的报错带上业务语境(如 'RxDB query options') |
Returns
string
与内容一一对应的稳定 key;对象键序、Map 键序、Set 成员序均不影响结果
Throws
值中含函数、symbol、无法识别的宿主对象或循环引用时抛出
Remarks
供三框架绑定包共用,避免各自实现漂移:JSON.stringify + Object.keys 的朴素做法
会把 Date/Map/Set/RegExp 全部坍缩成 {},选项内容变了却算出同一个 key,
表现为「改了筛选条件但列表不刷新」且没有任何报错。
Example
createStableKey({ b: 1, a: 2 }) === createStableKey({ a: 2, b: 1 }); // true
createStableKey(new Date('2026-01-01')) !== createStableKey(new Date('2026-07-01')); // true