我无法正确键入以下代码:
/**
* @constructor
*/
function F() {
this.a = 0;
};
/**
* @type {function(number)}
*/
F.prototype.g = function(b) {
this.a += b;
};
我收到以下警告:
test.js:12: WARNING - could not determine the type of this expression
this.a += b;
^
在此示例中,如何正确键入
this
?-编辑-
如果要查看警告,则需要按照here的说明将
reportUnknownTypes
设置为true
。我试图获得100%输入的代码,但我认为用一个简单的程序就无法达到目标。 最佳答案
/** @type {function(number)} */
未指定“此”类型,因此未知。要以这种方式指定它,您将要使用:
/** @type {function(this:F, number)}
使用“ @param {number}”可使编译器从F的原型上声明的事实中推断出“ this”类型。