【发布时间】:2016-02-01 23:30:04
【问题描述】:
如何使用@param 来提示作为属性的function 的可选 参数(this.selectedPage())以及使用@type提示它的返回类型?
以这个为例(this.selectedPage()可以通过传递参数接收页面并通过传递none返回):
/**
* @type {function(): Page}
*/
this.selectedPage = ko.observable(data.page);
type-typehint 被 IDE 很好地拾取并允许自动完成 this.selectedPage() 产生 Page 的事实。
不过,还请注意this.selectedPage() 带有一个参数——即一个页面。否则 IDE 会抱怨该函数在尝试传递一个参数时允许 0 个参数。
所以我将两者结合起来:
/**
* @type {function(Page): Page}
*/
this.selectedPage = ko.observable(data.page);
这似乎阻止了 IDE 在尝试传递参数时抱怨,但现在它在 not 传递参数时抱怨。
我试过@type {function(undefined|Page): Page} 无济于事。
该函数是一个 getter/setter - 那么如何告诉 docblock @param 是可选的?
【问题讨论】:
-
您是否有理由不使用
@returns作为返回类型? -
因为它是一个属性,所以它不起作用。 IE。 @return 适用于 function(){},但不适用于 this.func = func();。除非它应该并且是 IDE 的问题。
标签: javascript documentation jsdoc docblocks