簡體   English   中英

如何使用jsdoc在webstorm中記錄類型?

[英]How can I document a type in webstorm using just jsdoc?

當我編寫以下代碼時,注釋器告訴我沒有在第二個typedef中定義BrowserSelector

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

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

我認為它沒有將類型與名稱相關聯。 我怎樣才能做到這一點?

我不想為它添加實際代碼,只是jsdoc注釋。

我正在使用這個注釋樣式的'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 :)

從Webstorm 7開始,可能不需要多條注釋來描述屬性(可能更早)。

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

我最近注意到在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}
 */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM