我正在考虑使用谷歌应用脚本构建工具集。这个问题是,据我所知,只允许一个级别的组织。您可以创建一个名为Stopwatch的库,并调用方法Stopwatch.start()和Stopwatch.stop(),这非常酷。
我的想法虽然更像是Utils.Stopwatch()。start()和Utils.Timer.start()等。我认为它肯定可能在javascript中,但为了不断破坏Apps Script自动完成功能它需要以某种格式添加。下面是一个例子,它做错了(给出错误),但也许节省了一些时间。它基于this文章。
/**
* A stopwatch object.
* @return {Object} The stopwatch methods
*/
function Stopwatch()
{
var current;
/**
* Stop the stopwatch.
* @param {Time} time in miliseconds
*/
function timeInSeconds_(time)
{
return time/1000;
}
return
{
/**
* Start the stopwatch.
*/
start: function()
{
var time = new Date().getTime();
current = timeInSeconds_(time);
},
/**
* Stop the stopwatch.
* @return {decimal} time passed since calling
* start (in seconds)
*/
stop: function()
{
var time = new Date().getTime();
var difference = timeInSeconds_(time) - this.current;
return difference.toFixed(3);
}
};
}
由于
答案 0 :(得分:3)
答案 1 :(得分:3)
在Google本机支持此类功能之前,您可以使用与构造函数相同级别的注释定义空函数。您甚至可以保留原始代码结构。这将在编辑器中启用自动完成。另外,您将获得自动生成的库文档,例如: https://script.google.com/macros/library/versions/d/YOUR_PROJECT_KEY
示例:
/**
* Constructor.
* @constructor
* @param {String} apiKey Doxument API key
* @param {String} apiToken Doxument API token
*/
function DoxumentApi(apiKey, apiToken) {
// public api
return {
get: function(id, params) {
var httpResponse = execute('/docs/' + id + '.json?' + buildQuery(params));
return parse(httpResponse);
}
}
}
/**
* Get document record.
* @param {String} id document id
* @param {Object=} params optional. extra get params
* @return {Object} Document object
*/
function get(id, params) {}
答案 2 :(得分:2)
它还没有用,但团队确实知道它。在此之前,您需要在站点上记录您的库。我猜你也可以把这些方法放在描述中。对于新服务来说,这真的是一个很好的开始,但我和你在一起大约5分钟,并且已经想要更多了。 ;)
答案 3 :(得分:0)
使用OO怎么样?
它看起来非常有条理,而且很容易记录。
/**
* A stopwatch Class.
*
* @constructor
*/
function Stopwatch() {
this.current = new Date().getTime();
}
/**
* Starts the stopwatch
*/
Stopwatch.prototype.start = function(){
this.current = new Date().getTime();
};
/**
* Stops the stopwatch
*
* @return {number} Number of seconds since Stopwatch was started
*/
Stopwatch.prototype.stop = function(){
return ((new Date().getTime()) - this.current) / 1000;
};
实施例。如果您的lib导入为Utils
。
var s = new Utils.Stopwatch();
s.start();
// (...)
Logger.log(s.stop());
PS:这是未经测试的代码。
作为一个副作用,您可以拥有多个秒表,每个秒表都维护它自己的局部变量current
<强>更新强>
虽然这是在JSDoc之后正确记录的,但它目前没有使用Google Apps脚本自动填充方法。