我正在尝试正确地注释我的Javascript,以避免Google Closure搞砸我的变量。
我想知道是否可以强类型化匿名函数以确保函数的参数(在我的情况下是externs)不会被重命名。
这是一个例子
/** externs.js where I define my externs */
/** @interface a Json object returned by the server */
function MyServerResult() {}
/** @type {boolean} */
MyServerResult.prototype.error;
以及使用externs.js
和jquery.js
编译的另一个文件作为外部。
$.get("url.php", function(data) {alert(data.error;}, "json");
我正在尝试确保匿名函数function(data)
具有@type {function(MyServerResult)}
,因此error
未重命名。
我可以直接执行此操作,还是需要创建一个单独的函数(可能会被编译器内联...)?
答案 0 :(得分:2)
我相信你应该能够做到:
/**
* @param {MyServerResult} data
*/
var callback = function(data) {
alert(data.error);
};
$.get("url.php", callback, "json");