Javascript 我在哪里使用google闭包的函数注释?

Javascript 我在哪里使用google闭包的函数注释?,javascript,annotations,google-closure,Javascript,Annotations,Google Closure,闭包编译器可以使用有关JavaScript变量的数据类型信息来提供增强的优化和警告 我看到了一些函数类型的列表。例如: {function(string, boolean)} A function that takes two parameters (a string and a boolean), and has an unknown return value. 另一个例子: {function(new:goog.ui.Menu, string)} A function that takes

闭包编译器可以使用有关JavaScript变量的数据类型信息来提供增强的优化和警告

我看到了一些函数类型的列表。例如:

{function(string, boolean)}
A function that takes two parameters (a string and a boolean), and has an unknown return value.
另一个例子:

{function(new:goog.ui.Menu, string)}
A function that takes one parameter (a string), and creates a new instance of goog.ui.Menu when called with the 'new' keyword.

有人能告诉我在哪里使用这些注释,并举例说明它在实践中是什么样子的吗?它们主要用于@param和@return,用于将函数作为参数的函数还是返回函数?

您可以在任何地方使用类型:

  • var声明
  • 参数类型
  • 返回类型
  • 铸造
通常,闭包库是查找示例的好地方:

但以下是一些示例:

正常功能:

/** 
 * @param {string} a 
 * @return {string}
 */
function f(a) {
  return a;
}
/** 
 * @param {Function} a 
 * @return {void}
 */
function f(a) {
}
具有一般功能的函数:

/** 
 * @param {string} a 
 * @return {string}
 */
function f(a) {
  return a;
}
/** 
 * @param {Function} a 
 * @return {void}
 */
function f(a) {
}
一个函数接受一个具有单个参数的函数,该参数必须是字符串并返回字符串:

/** 
 * @param {function(string):string} a 
 * @return {void}
 */
function f(a) {
}

谢谢,我认为这也是必要的,或者在评论函数本身时使用。