【问题标题】:Typescript Conflicting Variable Names打字稿冲突的变量名称
【发布时间】:2013-03-26 19:28:20
【问题描述】:

我正在尝试编译一些 Node.js Typescript 代码,但我遇到了两个名为 console 的变量的问题。本质上,Node.js 有一个console.trace() 方法,而普通的浏览器端 Javascript 没有。我在我的 Typescript 文件中引用了 node.d.ts,其他一切都很好。 node.d.ts 将console 声明为变量,但 lib.d.ts 也是如此,它似乎覆盖了 Node.js 版本。将 --nolib 添加到编译器只会引发数百个关于未定义符号的错误。有没有办法在不编辑 lib.d.ts 的情况下解决这个问题? (或铸造控制台:(<any>console).trace()?)

【问题讨论】:

    标签: node.js typescript tsc


    【解决方案1】:

    您可以编辑 node.d.ts 定义,使其扩展控制台接口的现有 lib.d.ts 定义。

    在您的 node.d.ts 中,将 declare var console 替换为:

    interface Console {
        log(...data: any[]): void;
        info(...data: any[]): void;
        error(...data: any[]): void;
        warn(...data: any[]): void;
        dir(obj: any): void;
        timeEnd(label: string): void;
        trace(label: string): void;
        assert(expression: any, ...message: string[]): void;
    }
    

    现在您的 TypeScript 将在不转换为 any 的情况下编译

    【讨论】:

    • 我不知道为什么我没有想到这一点。哎呀,这是漫长的一天。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2013-04-14
    • 2016-11-21
    • 1970-01-01
    相关资源
    最近更新 更多