TypeScript类的“全局”getter/setter?

4

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

继续阅读...
export class Person {
    private _name: string;

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

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

但是,有没有一种方法可以拥有一个“全局的实例级”设置器,当类实例的任何属性被修改时触发? 而不需要在每个getter/setter中手动添加调用该触发函数的函数调用?像TypeScript内置的一些东西吗?

提前感谢。


你需要这个做什么? - Bergi
@Bergi 我想在实例更改时发出事件,而不是在每个setter中发出它(或在类内调用一个发射函数),这也需要我添加setter,即使我不需要它们,只是为了能够跟踪更改。 - Ariel Weinberger
因此,您不需要监视任何属性,而只需监视实例具有的所有属性。您可以轻松地通过编程方式添加setter。 - Bergi
1个回答

5

在TypeScript中没有内置的方法来做到这一点,JavaScript运行时也没有相关的功能。

最接近的方法是使用Proxy,它可以包装一个底层对象并拦截属性赋值。但你需要确保类实例在传递给其他地方之前被包装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接