Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅使用jsdoc在webstorm中记录类型?_Javascript_Webstorm_Jsdoc - Fatal编程技术网

Javascript 如何仅使用jsdoc在webstorm中记录类型?

Javascript 如何仅使用jsdoc在webstorm中记录类型?,javascript,webstorm,jsdoc,Javascript,Webstorm,Jsdoc,当我编写以下代码时,注释器告诉我第二个typedef中没有定义BrowserSelector: /** * @typedef {{name: String, minVer: Number, maxVer: Number}} BrowserSelector */ /** * @typedef {{type:String, browser: BrowserSelector, attribute: Object}} Selector */ 我相信它没有将类型与名称相关联。我该怎么做 我不想

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

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

/**
 * @typedef {{type:String, browser: BrowserSelector, attribute: Object}} Selector
 */
我相信它没有将类型与名称相关联。我该怎么做


我不想为它添加实际的代码,只想添加jsdoc注释。

我最近在AngularJS源代码中注意到,它们也注释了东西,没有任何直接附加的代码。我在您的案例中尝试了相同的原则,并得出以下结论(甚至在WebStorm中使用它进行代码完成和类型检查):


从Webstorm 7(可能更早)开始,不需要使用多个注释来描述属性


我将此注释样式用于类似“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 :)

似乎不需要\@propertyOf,这是从\@名称推断出来的,webstorm 6.0.2是否有办法对该格式进行注释,以描述名称的含义或用途?这就是我目前使用的结构,因为webstorm v8似乎仍然不理解@typedef,但是我发现它在WebStorm 10.0.4中仍然不起作用。
/**
 * @name BrowserSelector
 * @type {{
 *     name: String,
 *     minVer: Number,
 *     maxVer: Number
 * }}
 */
/**
 * @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 :)