用 typescript 重新定义 window.console

2024-04-21

我的错误记录代码中有以下 javascript,它定义了console.log for 某些浏览器不存在 https://stackoverflow.com/questions/3326650/console-is-undefined-error-for-internet-explorer4(IE 没有/没有定义它,除非调试工具打开)。

if (typeof console == "undefined")
{
    window.console = { log: function (msg) { } };
}

尝试将 js 升级到 Typescript 时的问题是window.console被定义为Console接口类型,并且由于我没有指定它(显然)无法编译的所有内容。

interface Console {
    info(message?: any, ...optionalParams: any[]): void;
    profile(reportName?: string): void;
    assert(test?: boolean, message?: string, ...optionalParams: any[]): void;
    msIsIndependentlyComposed(element: Element): boolean;
    clear(): void;
    dir(value?: any, ...optionalParams: any[]): void;
    warn(message?: any, ...optionalParams: any[]): void;
    error(message?: any, ...optionalParams: any[]): void;
    log(message?: any, ...optionalParams: any[]): void;
    profileEnd(): void;
}

如何告诉它忽略这个接口并让我重新定义window.console.

我尽最大努力的猜测不起作用

window.console = { log: function (msg) { } } : any;

一个更短的解决方案是只使用类型断言:

window.console = <any>{ log: function (msg) { } };

甚至使用 lambda:

window.console = <any>{ log: () => { } };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 typescript 重新定义 window.console 的相关文章

随机推荐