"Instance-wide" getter/setter 用于 TypeScript class?
"Instance-wide" getter/setter for TypeScript class?
所以我知道我可以根据 属性 设置 getters/setters。
export class Person {
private _name: string;
set name(value) {
this._name = value;
}
get name() {
return this._name;
}
}
但是有没有办法让 "global instance-wide" setter 在 class 实例的任何 属性 被修改时触发?
无需在每个 getter/setter 调用该触发函数时手动添加函数调用?比如,TypeScript 内置的东西?
提前致谢。
TypeScript 中没有内置方法来执行此操作,也没有 JavaScript 运行时功能。
最接近的是 Proxy,它可以包装底层对象并拦截 属性 赋值。但是您必须确保 class 实例在被传递到其他地方之前得到包装。
所以我知道我可以根据 属性 设置 getters/setters。
export class Person {
private _name: string;
set name(value) {
this._name = value;
}
get name() {
return this._name;
}
}
但是有没有办法让 "global instance-wide" setter 在 class 实例的任何 属性 被修改时触发? 无需在每个 getter/setter 调用该触发函数时手动添加函数调用?比如,TypeScript 内置的东西?
提前致谢。
TypeScript 中没有内置方法来执行此操作,也没有 JavaScript 运行时功能。
最接近的是 Proxy,它可以包装底层对象并拦截 属性 赋值。但是您必须确保 class 实例在被传递到其他地方之前得到包装。