我如何可以记录只用jsdoc在webstorm一个类型?(How can I document a

2019-09-04 02:09发布

当我写了下面的代码,注释者告诉我, BrowserSelector没有在第二的typedef定义:

/**
 * @typedef {{name: String, minVer: Number, maxVer: Number}} BrowserSelector
 */

/**
 * @typedef {{type:String, browser: BrowserSelector, attribute: Object}} Selector
 */

我认为它不关联的名称类型。 我怎样才能做到这一点?

我宁愿不增加实际的代码,只是jsdoc评论。

Answer 1:

我使用这个注释风格像类型的“结构”:

/**
 * @name BrowserSelector
 * @property {String} name
 * @property {Number} minVer
 * @property {Number} maxVer
 */

/** @type {BrowserSelector|*} */
var mySelector = {}; // no warning because of '*' in @type :S
mySelector.name = 'foo'; // no warning :)
mySelector.id = 'bar'; // warning :)



Answer 2:

多个注释描述性是没有必要的Webstorm 7(或许更早)的。

/**
 * @name BrowserSelector
 * @type {{
 *     name: String,
 *     minVer: Number,
 *     maxVer: Number
 * }}
 */


Answer 3:

我注意到最近在AngularJS源代码,他们也标注的东西没有任何直接连接的代码。 我想同样的原则对你的情况,并与下面上来(偶数码完成和类型检查WebStorm与它的工作):

/**
 * @name BrowserSelector
 */
/**
 * @name BrowserSelector#name
 * @type {string}
 */
/**
 * @name BrowserSelector#minVer
 * @type {number}
 */
/**
 * @name BrowserSelector#maxVer
 * @type {number}
 */

/**
 * @name Selector
 */
/**
 * @name Selector#type
 * @type {string}
 */
/**
 * @name Selector#browser
 * @type {BrowserSelector}
 */
/**
 * @name Selector#attribute
 * @type {Object}
 */


文章来源: How can I document a type in webstorm using just jsdoc?