У меня есть следующий код на моем машинописном машинописном документе. Но он сообщает следующее сообщение об ошибке в child._moveDeltaX(delta)
линии:Свойство «foo» защищено и доступно только через экземпляр класса «Foo» (в случаях Foo)
ERROR: Property '_moveDeltaX' is protected and only accesible
through an instance of class 'Container'
INFO: (method) Drawable._moveDeltaX(delta:number):void
Код на следующие:
class Drawable {
private _x:number = 0;
constructor() {}
/**
* Moves the instance a delta X number of pixels
*/
protected _moveDeltaX(delta:number):void {
this._x += delta;
}
}
class Container extends Drawable {
// List of childrens of the Container object
private childs:Array<Drawable> = [];
constructor(){ super();}
protected _moveDeltaX(delta:number):void {
super._moveDeltaX(delta);
this.childs.forEach(child => {
// ERROR: Property '_moveDeltaX' is protected and only accesible
// through an instance of class 'Container'
// INFO: (method) Drawable._moveDeltaX(delta:number):void
child._moveDeltaX(delta);
});
}
}
Что у меня не так? Я думал, что вы можете получить доступ к защищенному методу. В других lenguajes этот код работал бы без проблем.
Нет обходного пути? Вы сами стараетесь создать публичный сеттер? – Ciberman
Ну. вы можете просто нажать «any»: '( ребенок) ._ moveXDelta (delta);'. Но вы теряете время компиляции (машинопись), проверяя эту строку (не очень страшная вещь, если вы не являетесь стикерами-пуристами). –
Vaccano
Отлично! Я этого не сделал. Я сделаю это. (Я принял ваш ответ как правильно, спасибо!) – Ciberman