2012-06-17 114 views
0

eBay的VJET和Google的Closure Compiler都在Javascript註釋中使用類型註釋。將VJET類型註釋轉換爲Closure類型註釋

他們爲什麼選擇不兼容的語法?

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註釋到谷歌關閉類型註釋的方法嗎?

+0

我實際上沒見過這個話題來只要VJet類型兼容,就可以編寫一個腳本來創建Closure-Compiler註釋。 –

回答

1

沒有將vjetdocs轉換爲jsdocs的自動方式,但這裏是查詢api的手動轉換。首先,我將從closure的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. 
*/ 

groupNum VJET中文檔是第一第一位置和類型將是編號(未編號)VJET使用區分大小寫的EcmaScript標準類型名稱。

itemName是VJET doc將是一個混合類型,可能是數字或字符串。使用VJETDoc目前沒有名爲Null的默認類型。如果有空數據類型,它將是大寫。我相信這應該被添加到VJET,但可以傳入null,VJET不會抱怨下面的聲明。

你可以有或沒有的功能,而params(如果你不想重複自己...位置接管的名字寫在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);