javascript - 将子属性添加到 jsdoc 中的现有属性列表

标签 javascript google-closure-compiler google-closure jsdoc code-documentation

我正在尝试使我们的 JS 库中的特定模块自动化,但卡在了我想要定义一组属性的位置(假设一个对象作为类的构造参数)。

/**
 * This function initiates world peace!
 * @constructor
 * @param {object}  defaults        - The options to initiate peace.
 * @param {number}  defaults.issues - The number of issues being taken up.
 * @param {string}  defaults.source - The name of the location where process starts.
 */
 var WorldPeace = function (defaults) {
     // code here
 };

如果建筑的所有属性都在一个位置定义,那就太好了。不幸的是,我的代码有许多模块有助于构建属性。比方说,在代码的其他部分(在后面的文件中)导致具有更多属性

 * @param {Date} defaults.start  - The date when the process started.
 * @param {Date} defaults.stop   - The date when the process should stop.

如何将我之前为 WorldPeace 函数定义的原始属性集添加进去?做一些像 mixin 或子类化属性的事情太过分了!因此,如果我可以简单地注入(inject)属性列表定义,那就太好了。

最佳答案

最简单的方法是使用记录类型:

/**
 * This function initiates world peace!
 * @constructor
 * @param {{issues: number, source: string}} defaults - options to initiate peace.
 */
var WorldPeace = function (defaults) {
  // code here
};

你也可以实现一个接口(interface):

/** @interface */
var WordPeaceDefaults;

/** @type {number} */
WorldPeaceDefaults.prototype.issues;

/** @type {string} */
WorldPeaceDefaults.prototype.source;

/**
 * This function initiates world peace!
 * @constructor
 * @param {WorldPeaceDefaults} defaults - options to initiate peace.
 */
var WorldPeace = function (defaults) {
  // code here
};

/**
 * @constructor
 * @implements {WorldPeaceDefaults}
 */
function MyWorldPeaceDefaults() {}

/** @type {number} */
MyWorldPeaceDefaults.prototype.issues = 0;

/** @type {string} */
MyWorldPeaceDefaults.prototype.source = '';

WordPeace(new MyWorldPeaceDefaults);

关于javascript - 将子属性添加到 jsdoc 中的现有属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113571/

相关文章:

javascript - 在动态创建的元素上进行事件绑定(bind)?

javascript - 如何使用 window.fetch 下载文件?

javascript - 闭包编译器可以使用链接作为缩小技术吗?

javascript - 如何使用 goog.provide 和 goog.require 加载我自己的 js 模块?

javascript - 如何将 google Closure 命名空间添加到 Javascript 类

javascript - 在 Handlebars.js 中循环遍历多维数组

javascript - 图片显示已下载但点击时未从浏览器打开

javascript - Closure Compiler - 混淆公共(public)方法 - 不一致的行为?

javascript - 如何在不同网页的文件组中自动化 Javascript 组合和缩小?

javascript - 我如何告诉闭包编译器忽略代码?