Я нашел один обходной путь - которым я не очень доволен
function Foo(){
this._bar = "12345";
//Intellisense works on this.bar
}
Foo.prototype.setBar = function(bar){
/// <param name="bar" type="String"/>
if(bar){
this._bar = bar;
}
}
Foo.prototype.getBar = function(){
/// <returns type="String"/>
return this._bar;
}
Foo.prototype.baz = function(){
var bob = "12345";
//Intellisense works on bob
//Intellisense works on this.getBar();
}
Недостатками этого является гораздо больше ненужного кода - и я действительно не понимаю, почемукласс всегда должен быть вынужден использовать методы доступа для своих приватных переменных.
Примечание. Попытка получить однофункциональный метод Getter / Setter также никуда меня не привела
Foo.prototype.bar = function(bar){
// If a value is passed, set this._bar and return, otherwise, act as a getter
if(bar){
this._bar = bar;
}
return this._bar;
}
Foo.prototype.baz = function(){
//Valid Javascript, Intellisense works
this.bar("12345");
//Valid Javascript, Intellisense does not work
//VS seems to do parameter checking...
this.bar();
}