Есть ли способ иметь частный сеттер для свойства в TypeScript?Частный наборщик машинописных текстов?
class Test
{
private _prop: string;
public get prop() : string
{
return this._prop;
}
private set prop(val: string)
{
//can put breakpoints here
this._prop = val;
}
}
Компилятор жалуется, что видимость для геттера и сеттера не соответствует. Я знаю, что могу просто установить фоновое поле, но тогда я не могу установить точки останова, когда значение установлено.
Я, хотя об использовании интерфейса, чтобы скрыть сеттер, но интерфейсы могут определять только свойство, а не то, имеет ли он геттер на сеттере.
Я что-то упустил? Кажется, нет никаких причин не позволять частным сеттерам, в результате JS не обеспечивает видимости в любом случае, и кажется лучше, что нынешние альтернативы.
Я что-то упустил? Если нет, то нет веских оснований для каких-либо частных разработчиков?
Проблема этого решения заключается в том, что они не позволяют + = (и - =) Оператор: 'this.prop + = 'abc'; ' – splintor
@splintor да, но не позволяя другим изменять значение, это целая точка :) –
@TobyJ Обратите внимание на' this', который я использовал в своем примере. Я имею в виду разрешение '+ =' и '- =' из класса, где вы можете установить точку останова. Решение @Fenton предлагает добавить метод, но затем изнутри класса вы не можете использовать '+ =' для добавления в 'prop'. См. [Мое решение] (https://stackoverflow.com/a/45909300/46635) для того, чтобы это сделать. – splintor