var categoryID
просто не к месту. Вы не объявляете переменные на уровне class
; Вы объявляете переменные в конструкторе или методах.
В вашем случае вы, вероятно, вообще не хотите объявлять переменную; вместо этого создайте свойство в своем конструкторе:
class BookingReports extends ReportsInterface{
constructor() {
super();
this.categoryID = /*...some default value...*/;
}
init(CatID)
{
this.categoryID=CatID;
}
}
Примечание: Наличие метода init
не имеет особого смысла; для этого и нужен конструктор. Итак:
class BookingReports extends ReportsInterface {
constructor(catID) {
super();
this.categoryID = catID;
}
}
В какой-то момент предложение о полях класса достигнет стадии 4, после чего вы сможете "объявить" свойства на уровне class
, если захотите:
// Valid if/when the class fields proposal advances
class BookingReports extends ReportsInterface {
categoryID; // Declares the property
constructor(catID) {
super();
this.categoryID = catID;
}
}
Если вы инициализируете свойство в конструкторе, в этом нет особого смысла; но это может быть полезно для того, чтобы сообщить читателю (и движку JavaScript) стандартную «форму» вашего объекта заранее, а не заставлять их (и это) анализировать код конструктора.