如何使用 jdoc 描述接收具有动态属性(如 json 模式)的复杂对象的函数
How to use jdoc to describe a function that receive a complex object with dynamic properties like a json schema
示例:
/**
*
* @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
对于这个特殊情况:
/**
* @param {Object} data
* @param {{properties: Object.<string, {type: string}>}} schema
*/
function validate(data, schema) {
schema.properties['test'].type = 'test';
}
或者,如果您不介意与 Closure 编译器不兼容
(它仍然适用于 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';
}
参见:
示例:
/**
*
* @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
对于这个特殊情况:
/**
* @param {Object} data
* @param {{properties: Object.<string, {type: string}>}} schema
*/
function validate(data, schema) {
schema.properties['test'].type = 'test';
}
或者,如果您不介意与 Closure 编译器不兼容 (它仍然适用于 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';
}
参见: