1

如何在 JSDOC 的函数参数中记录可能的配置属性:

/**
 * N level expectimax AI.
 *
 * @param {object} cfg  config
 *   cfg.minimaxDepth  - limit for minimax search
 *   cfg.expectiDepth  - limit for expectimax search
 *   cfg.weightFn  - position weight function
 *
 * @constructor
 */
function expectimaxAI(brdEngine, cfg) { ... }

哪个标记用于cfg.minimaxDepth( cfg.*) 参数?

是否可以记录合成aiCfg类型并将其引用为:

 * @param {aiCfg} cfg  config

或以其他方式?

4

1 回答 1

1

在阅读了官方 JSDoc 2.x 文档后,我做了一些修改:

/**
 * @name BlindWeightRandomCfg
 * @function
 * @param {number} left   weight
 * @param {number} right  weight
 * @param {number} up     weight
 * @param {number} down   weight
 */

并将不存在的功能称为:

/**
 * Blind weight random AI.
 *
 * @param {Board} brdEngine  board engine from board.js
 * @param {BlindWeightRandomCfg} cfg  configuration settings
 * @constructor
 */
 ai.BlindWeightRandom = function(brdEngine, cfg) { ... }

现在参数cfg- 可点击定义BlindWeightRandomCfg

更新JSDoc 2.x 的另一种可能性:

/**
 * @name BlindWeightRandomCfg
 * @namespace
 * @property {number} left   weight
 * @property {number} right  weight
 * @property {number} up     weight
 * @property {number} down   weight
 */

对于 JSDoc 3.x:

/**
  @typedef PropertiesHash
  @type {object}
  @property {string} id - an ID.
  @property {string} name - your name.
  @property {number} age - your age.
 */

/** @type {PropertiesHash} */
var props;

似乎这@typedef是一个解决方案。请参阅其他变体官方文档

于 2014-09-14T22:48:40.597 回答