我有一个setTimeout回调,但当我把它放在另一个函数,我得到一个错误与tsc
:
function delayedSnapshot() {
setTimeout( function() {
var filename = "/Users/dc/dump/heapdump.heapsnapshot";
heapdump.writeSnapshot(function(err, filename) {
console.log("dump written to", filename);
});
process.exit(1);
}, 5000);
}
>> error TS2384: Overload signatures must all be ambient or non-ambient.
如果我删除外部包装delayedSnapshot
,它将编译良好。我在这里找到了一些关于环境的含义,但似乎不相关。
http://www.typescriptlang.org/Handbook modules-working-with-other-javascript-libraries
有人能解释我如何阻止这个错误的发生,但仍然保持我的包装器来控制回调触发与否?
将函数名称从delayedSnapshot()
更改为其他名称
似乎在其他地方定义/声明了一个delayedSnapshot()
方法,在这里被重载了。