首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何仅使用jsdoc在webstorm中记录类型?

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

Stack Overflow用户
提问于 2013-05-17 21:03:34
回答 3查看 7.1K关注 0票数 18

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

代码语言:javascript
复制
/**
 * @typedef {{name: String, minVer: Number, maxVer: Number}} BrowserSelector
 */

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

我相信它不会将类型与名称相关联。我该怎么做呢?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-31 16:19:20

我将这个注释样式用于'struct‘之类的类型:

代码语言:javascript
复制
/**
 * @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 :)

票数 20
EN

Stack Overflow用户

发布于 2013-10-02 23:45:16

从Webstorm 7(可能更早的版本)开始,描述属性的多个注释是不必要的。

代码语言:javascript
复制
/**
 * @name BrowserSelector
 * @type {{
 *     name: String,
 *     minVer: Number,
 *     maxVer: Number
 * }}
 */
票数 12
EN

Stack Overflow用户

发布于 2013-05-21 04:17:05

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

代码语言:javascript
复制
/**
 * @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}
 */
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16609786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档