"实例范围" TypeScript类的getter / setter?

时间:2016-05-18 00:14:44

标签: javascript oop typescript ecmascript-6 getter-setter

所以我知道我可以为每个属性设置getter / setter。

export class Person {
    private _name: string;

    set name(value) {
        this._name = value;
    }

    get name() {
        return this._name;
    }
}

但是有没有办法在整个实例范围内拥有一个""每当类实例的任何属性被修改时触发的setter? 无需在每个调用该触发器函数的getter / setter中手动添加函数调用?比如,TypeScript内置的东西?

提前致谢。

1 个答案:

答案 0 :(得分:5)

TypeScript中没有内置方式来执行此操作,也没有针对它的JavaScript运行时功能。

最接近的是Proxy,它可以包装底层对象并拦截属性赋值。但是你必须确保类实例在被传递到其他地方之前被包装好。