0

我正在尝试正确注释我的 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重命名。

我可以直接这样做还是需要创建一个单独的函数(可能会被编译器内联......)?

4

1 回答 1

2

我相信你应该能够做到:

/**
 * @param {MyServerResult} data
 */
var callback = function(data) {
  alert(data.error);
};
$.get("url.php", callback, "json");
于 2012-04-25T16:44:41.933 回答