Javascript - Google闭包注释 - 将类型设置为匿名函数

时间:2012-04-23 18:01:48

标签: javascript annotations obfuscation google-closure-compiler

我正在尝试正确地注释我的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.jsjquery.js编译的另一个文件作为外部。

$.get("url.php", function(data) {alert(data.error;}, "json");

我正在尝试确保匿名函数function(data)具有@type {function(MyServerResult)},因此error未重命名。

我可以直接执行此操作,还是需要创建一个单独的函数(可能会被编译器内联...)?

1 个答案:

答案 0 :(得分:2)

我相信你应该能够做到:

/**
 * @param {MyServerResult} data
 */
var callback = function(data) {
  alert(data.error);
};
$.get("url.php", callback, "json");