当我编写以下代码时,注释器告诉我在第二个typedef中未定义BrowserSelector:

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

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

我相信这不是将类型与名称相关联。我怎样才能做到这一点?

我宁愿不添加实际代码,而只是添加jsdoc注释。

最佳答案

我将这种注释样式用于“结构”之类的类型:

/**
 * @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 :)

10-08 16:21