跳到主要内容

createStableKey()

function createStableKey(value, label?): string;

Defined in: packages/utils/src/object/createStableKey.ts:76

把任意可序列化的值转成稳定字符串 key,用于「内容是否变化」的判定。

Parameters​

ParameterTypeDefault valueDescription
valueunknownundefined待序列化的值
labelstring'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