проблемы с преобразованием класса в интерфейс - PullRequest
0 голосов
/ 28 мая 2020

пытается превратить класс в интерфейс, потому что мой учитель сказал, что это правильный способ.

export class Stats {  
  donePomodoros: number;
  doneShortBreaks: number;
  doneLongBreaks: number;

constructor() {
 this.donePomodoros = 0;
 this.doneShortBreaks = 0;
 this.doneLongBreaks = 0;
 }
}

но когда я превратил его в интерфейс, возникла проблема

«Статистика» относится только к типу, но здесь используется как значение.

  private observableStats: BehaviorSubject<Stats> = new BehaviorSubject(
   new Stats()
  );

как это исправить?

1 Ответ

0 голосов
/ 28 мая 2020

Попробуйте:

export interface Stats {
 donePomodoros: number;
 doneShortBreaks: number;
 doneLongBreaks: number;
}

 private observableStats: BehaviorSubject<Stats> = new BehaviorSubject(
   {
     donePomodoros: 1,
      doneShortBreaks: 2,
      doneLongBreaks: 3
    }
  );

Короче говоря, вы не можете создавать экземпляры интерфейсов напрямую. Интерфейс - это группа связанных свойств и методов, которые описывают объект, но не обеспечивают их реализацию или инициализацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...