#typescript #getter-setter
Вопрос:
У меня есть этот абстрактный класс:
export abstract class Builder { static data: MyClass = {}; get data(): MyClass { return Builder.data; } set data(value: MyClass) { Builder.data = value; } static member1() {} static member2() {} ... }
Я потребляю этот класс вот так:
Builder.data = {...}
однако, похоже, что геттер и сеттер не оказывают никакого эффекта.
В этом случае Builder.data
ссылка на статический элемент.
Есть идеи, как это исправить?
Комментарии:
1.
get
иset
влияют на экземпляры , а не на статические свойства. Итак, с помощью этого кодаnew Builder().data = /* ... */
должно быть изменено статическое значение. Я еще не пробовал, но это то, что в настоящее время выражает ваш код.2. @VLAZ Есть ли способ эмулировать это в абстрактном классе?
3. Зачем вам здесь нужен добытчик и сеттер? Или абстрактный класс? Или статическое свойство, которое нужно изменить? Сочетание этих факторов немного странно. Обычно, если у вас есть статическое свойство, вы редко его меняете. Если у вас есть геттер и сеттер, это также не будет для статического свойства. Я не уверен, какова конечная цель здесь, но я думаю, что перепроектирование-это первый шаг.