Closure Compiler可以使用有关JavaScript变量的数据类型信息来提供增强的优化和警告。
我正在查看their type expressions并查看功能类型的几个列表。示例:
{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吗?
答案 0 :(得分:3)
您将使用任何类型的地方:
通常,Closure Library是查找示例的好地方:
http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/base.js
但这里有一些样本:
正常功能:
/**
* @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) {
}