向applicationCache添加事件处理程序会导致编译错误

时间:2014-02-25 11:45:24

标签: javascript html5 typescript application-cache

如果我将此行添加到我的代码

if (window.applicationCache) {
    applicationCache.addEventListener('updateready',
        window.location.reload);
}

我得到了这个奇怪的错误:

/home/matej/archiv/2014/projekty/zalmy/zalmy.ts(58,22): error TS2082:
 Supplied parameters do not match any signature of call target:
    Could not apply type '"downloading"' to argument 1 which is
    of type 'string'.
/home/matej/archiv/2014/projekty/zalmy/zalmy.ts(58,22): error TS2087:
    Could not select overload for 'call' expression.
make: *** [zalmy.js] Error 1

发生了什么事?这是tsc中的错误吗? (使用最新的打字稿0.9.5)。

1 个答案:

答案 0 :(得分:0)

将其包裹在一个函数中:

if (window.applicationCache) {
    applicationCache.addEventListener('updateready', () => {
        window.location.reload();
    });
}

原因是事件侦听器(ev:Event)的参数不同于reload的可选参数(布尔值)