2013-04-04 87 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