1

我正在尝试编译一些 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()?)

4

1 回答 1

2

您可以编辑 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

于 2013-04-04T17:18:51.650 回答