2012-12-29 45 views
10

我想在我的打字稿項目,並下載node.d.ts使用從的NodeJS https://github.com/borisyankov/DefinitelyTyped/tree/master/node使用具有的NodeJS打字稿

但VisualStudio中發現了很多在.d.ts文件錯誤的。他們都基本相同:

錯誤2遠銷接口「服務器」擴展私人 模塊「事件」的C接口:\用戶\ LHK \桌面\打字稿遊戲\策略 去\節點\節點-0.8.d.ts 236 37 node-0.8.d.ts

所有錯誤消息都抱怨擴展了專用接口。

我搜索SO,發現這樣一個問題: nodejs require inside TypeScript file

之一的評論給出了建議從Microsoft下載樣本node.d.ts。我瀏覽了互聯網,發現這篇文章http://stackful.io/blog/typescript-nodejs-vim-and-linux-oh-my/並下載了第二版的node.d.ts,結果完全一樣。

我在哪裏可以找到適用於nodejs和Typescript的定義文件?

回答

5

對於0.8.1-1版本打字稿的,可以從該github上項目的最新node.d.ts文件: https://github.com/soywiz/typescript-node-definitions

我得到同樣的錯誤exported interface直到我從那裏拉了最新的定義文件。

+1

很好,這工作。我比較了兩個.d.ts文件,發現一個奇怪的差異。在模塊部分,無論何時導入另一個模塊,舊版本都會使用「import something = module(」something「)」,但新版本將其更改爲「export import something = module(」something「)」。爲什麼擴展私有模塊的接口突然合法,如果該模塊被導出?整個結構對我來說沒有意義。爲什麼例如模塊http「導出導入」模塊事件?我現在能做些什麼像http.events.SomethingfromEvents? – lhk

+0

github項目非常棒,它解決了我的另一個問題。如果你想將這個答案複製到http://stackoverflow.com/questions/14084406/typescript-and-socket-io我會很高興接受它 – lhk

+0

@lhk我還沒有看到爲什麼它的工作細節,我很高興它做到了。我看着你的另一個問題,但是這個問題表明你已經使用'soywiz'項目中的'socket.io.d.ts'文件,所以我很困惑你爲什麼要我在那裏複製這個答案。 – JohnnyHK

1

我不完全確定這裏發生了什麼。

我懷疑當前版本的Typescript(0.8.1〜1)node.js包打破了一些東西。我也遇到過這個。我調整了node.d.ts文件,並標記了一些「導出」而不是「聲明」的東西,這讓我經歷了我的編譯問題,但是我發現這些函數沒有顯示在當前範圍內。 FWIW,我一直在用打字稿 - 要求和打字稿包裝紙(這兩個都需要一些調整來處理0.8.1〜1)的私人分支玩弄,我並不太確定,所有東西正在工作,它應該是,所以我不知道這個問題是我的問題或當前節點/打字稿特有的東西。