【问题标题】:Translating VJET type annotations into Closure type annotations将 VJET 类型注解转换为 Closure 类型注解
【发布时间】:2012-06-19 14:40:03
【问题描述】:

EBay 的 VJET 和 Google 的 Closure Compiler 都在 Javascript cmets 中使用类型注释。

他们为什么选择不兼容的语法?

VJET

function add(a, b) {  //< Number add(Number, Number)
    return a + b ;
}

谷歌关闭

/**
 * Queries a Baz for items.
 * @param {number} groupNum Subgroup id to query.
 * @param {string|number|null} term An itemName,
 *     or itemId, or null to search everything.
 */
goog.Baz.prototype.query = function(groupNum, term) {
  ...
};

有没有办法自动将 VJET 类型注解转为 Google Closure 类型注解?

【问题讨论】:

  • 其实我之前没见过这个话题。只要 VJet 类型兼容,就可以编写脚本来创建 Closure-Compiler 注释。

标签: javascript google-closure-compiler google-closure vjet


【解决方案1】:

没有将 vjetdocs 翻译成 jsdocs 的自动方法,但这里是查询 api 的手动翻译。首先,我将从闭包的 jsdoc 转换为 vjetdoc,然后再返回以向您展示差异。

/**
 * Queries a Baz for items.
 * @param {number} groupNum Subgroup id to query.
 * @param {string|number|null} term An itemName,
 *     or itemId, or null to search everything.
 */

VJET 文档中的 groupNum 是第一个位置,类型是 Number(不是数字)vjet 使用区分大小写的 EcmaScript 标准类型名称。

itemName 是 VJET 文档将是混合类型,可以是数字或字符串。 VJETDoc 目前没有名为 Null 的默认类型。如果有 Null 数据类型,它将是大写的。我相信这应该添加到 VJET 中,但是可以传入 null 并且 VJET 不会抱怨下面的声明。

您可以在 vjetdoc 中编写它,带或不带函数和参数的名称(如果您不想重复自己...位置接管。

// shortest form
function query(groupNum, itemName) {  //< void (Number, {String|Number}?)

}
//
// longer form - on same line as declaration
function query(groupNum, itemName) {  //< void query(Number groupNum, {String|Number}? itemName)

}

// longer form mixed with jsdocs

/**> void query(Number groupNum, {String|Number}? itemName);
 * 
 * Queries a Baz for items.
 * @param {number} groupNum Subgroup id to query.
 * @param {string|number|null} term An itemName,
 *     or itemId, or null to search everything.
*/
function query(groupNum, itemName) {  

}


query(10,"test");
query(30,20);
query(20,null);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    相关资源
    最近更新 更多