我正在尝试编译一些 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()
?)
问问题
803 次
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 回答