/ / Дефиниране на типове имоти в класацията? - машинопис, ecmascript-6, es6-class

Определете типовете имоти на класа в машинописната машина? - шрифтове, ecmascript-6, es6-класа

Използвам ES6 класове в пишеща машина със следното:

class Camera {
constructor(ip) {
this.ip = ip;
}
}

Възвръщам тази грешка, въпреки че все още изглежда да се компилира:

Свойството "ip" не съществува на тип "Камера".

Ако дефинирам типа:

this.ip: string = ip;

Ще се върна:

";" очакван.

Как да форматирам класа, за да се отърва от двете грешки?

Отговори:

1 за отговор № 1

Първо или декларирайте собствеността на класа:

class Camera {
ip;
constructor(ip) {
this.ip = ip;
}
}

Или я декларирайте на параметъра constructor (предпочитания подход), просто добавете модификатор за достъп към параметъра, за да укажете, че той е свойство:

class Camera {
constructor(public ip) {
// note no explicit assignment
}
}

0 за отговор № 2

Опитали сте се да влезете в собствеността „ip“без да го определя в самия клас. Конструкторът (ip) {} се извиква, когато се обадите на класа Camera и той търси ip свойството. Тъй като не сте го дефинирали в класа, дава грешка

използвайте по този начин. Най-добри пожелания.

class Camera {
private ip: string;  // declare your variable first with the type

constructor(ip) {
this.ip = ip;
}
}