什麼是正確的方式來註釋我可以通過一個對象作爲函數參數傳遞的選項類型?例如:Closure-param類型的對象。 <string, *>不能正常工作
/**
* test() function can receive all type of options.
* @param {Object.<string, *>} options
* @expose
*/
function test(options) {
if(typeof options.set !== "undefined") {
alert(options.set);
}
if(typeof options.callback !== "undefined") {
options.callback.apply(this, []);
}
}
我如何定義類似的東西......?
/**
* @param {Object.<string, *>} options
* @param {Object.<string, *>} options.set
* @param {function(... [*])} options.callback
*/
如果我不能什麼都不做,編譯器返回如下錯誤:
script.js:28: WARNING - Property callback never defined on Object.<string, *>
options.callback.apply(this, []);
^
使用方法:
java -jar "compiler.jar"
--compilation_level ADVANCED_OPTIMIZATIONS
--warning_level VERBOSE
--js "script.js"
--js_output_file "script.min.js"
您是否嘗試過最簡單的選項:'@param {*} options'? – Tony
我喜歡指定每個選項的確切內容。我正在考慮使用'@界面'。 –
正確的選項是將其完全定義爲「接口」或其他類型,或使用記錄類型註釋。這取決於選項的來源以及創建方式。 –