Свойства абстрактного класса не работают в машинописном тексте

#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. Зачем вам здесь нужен добытчик и сеттер? Или абстрактный класс? Или статическое свойство, которое нужно изменить? Сочетание этих факторов немного странно. Обычно, если у вас есть статическое свойство, вы редко его меняете. Если у вас есть геттер и сеттер, это также не будет для статического свойства. Я не уверен, какова конечная цель здесь, но я думаю, что перепроектирование-это первый шаг.