7

我有一个 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

有人可以解释我如何阻止这个错误的发生,但仍然让我的包装器控制回调触发吗?

4

1 回答 1

3

将函数名称从更改为delayedSnapshot()其他名称。

似乎在delayedSnapshot()其他地方定义/声明了一个方法,在这里被重载。

于 2019-03-11T19:34:50.073 回答