2013-04-04 50 views
1

我想编译一些Node.js打字稿的代码,但我遇到了两个变量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()?)打字稿冲突变量名

回答

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; 
} 

现在您的打字稿将不投编译为any

+0

我不知道为什么我没有想到这一点。天哪,这是漫长的一天。谢谢。 – GJK 2013-04-04 19:48:04