当我编写以下代码时,注释器告诉我第二个类型定义中没有定义BrowserSelector
:
/**
* @typedef {{name: String, minVer: Number, maxVer: Number}} BrowserSelector
*/
/**
* @typedef {{type:String, browser: BrowserSelector, attribute: Object}} Selector
*/
我相信它不会将类型与名称相关联。我该怎么做呢?
我不喜欢为它添加实际的代码,只添加jsdoc注释。
发布于 2013-10-31 16:19:20
我将这个注释样式用于'struct‘之类的类型:
/**
* @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 :)
发布于 2013-10-02 23:45:16
从Webstorm 7(可能更早的版本)开始,描述属性的多个注释是不必要的。
/**
* @name BrowserSelector
* @type {{
* name: String,
* minVer: Number,
* maxVer: Number
* }}
*/
发布于 2013-05-21 04:17:05
我最近在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}
*/
https://stackoverflow.com/questions/16609786
复制相似问题