如何使用jdoc来描述接收具有动态属性(如json模式)的复杂对象的函数

时间:2017-08-09 20:43:21

标签: javascript jsdoc jsdoc3

示例:

/**
*
* @param {any} data - Object to be validated
* @params {Object} schema - JSON schema
* @params {Object} schema.properties - JSON schema properties
* ** @params {string} schema.properties[any].type - field property type ???**
*/
function validate(data, schema) {
}

类似于JsDoc: How do I document that an object can have arbritrary (unknown) properties but with a particular type?

JSDoc Object of templated objects

1 个答案:

答案 0 :(得分:1)

对于这个特例:

/**
 * @param {Object} data
 * @param {{properties: Object.<string, {type: string}>}} schema
 */
function validate(data, schema) {
    schema.properties['test'].type = 'test';
}

或者,如果您不介意与Closure Compiler不兼容 (它仍然适用于WebStorm):

/**
 * @typedef {Object} Property
 * @property {string} type
 */

/**
 * @typedef {Object} Schema
 * @property {Object.<string, Property>} properties
 */

/**
 * @param {Object} data
 * @param {Schema} schema
 */
function validate(data, schema) {
    schema.properties['test'].type = 'test';
}

请参阅:

http://usejsdoc.org/tags-type.html#jsdoc-types