Използвам 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;
}
}