diff --git a/src/decorators/debug.decorator.ts b/src/decorators/debug.decorator.ts new file mode 100644 index 0000000..0472431 --- /dev/null +++ b/src/decorators/debug.decorator.ts @@ -0,0 +1,22 @@ +/** + * 用于跟踪class某property的值变化 + * 使用方法: + * 在需要跟踪的字段上加上 @trace + */ +export function trace() { + return function (target: any, name: string) { + let val = target[name]; + const setter = function (valNew: any) { + console.trace(`${target.constructor.name}.${name} set val: ${valNew}`); + val = valNew; + } + const getter = function () { + return val; + } + Reflect.defineProperty(target, name, { + get: getter, + set: setter + }) + } + +}