0

我想正确注释我的Javascript,以避免Google Closure搞乱我的变量。Javascript-Google closure注释 - 将类型设置为匿名函数

我想知道是否可以强类型的匿名函数,以确保该函数的参数(这是extern在我的情况下)不重命名。

这里是示

/** 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不重命名。

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

回答

2

我相信你应该能够做到:

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

感谢,听起来很合理。我会试试这个。 – 2012-04-26 09:11:57

+0

经过测试,它确实起作用,它可以防止重命名它是最重要的成员。然而,它会产生一个警告,因为数据没有预期的类型,有没有办法通过某种'铸造'来消除这个警告? – 2012-04-27 08:13:15

+0

我添加了更新:请给它一个镜头。 – bolinfest 2012-04-27 17:03:56