2012-12-29 72 views
4

我想在我的Typescript項目中使用socket.io,但是我只找到服務器端打字稿的.d.ts文件。TypeScript和Socket.io

這是一個很好的例子:https://github.com/soywiz/typescript-node-definitions/blob/master/socket.io.d.ts

它顯示瞭如何結合Socket.io使用打字稿。然而在客戶端它使用JavaScript。

我需要的是客戶端的打字稿一個.d.ts文件,從該行解析錯誤消息:

var socket=io.connect("localhost"); 

名稱「IO」並不在當前範圍存在

在哪裏可以找到合適的定義文件?

回答

8

我創建了自己.d.ts文件,這是相當短,但它工作得很好:

declare var io : { 
    connect(url: string): Socket; 
}; 
interface Socket { 
    on(event: string, callback: (data: any) => void); 
    emit(event: string, data: any); 
} 

此聲明文件可以導入到客戶端打字稿及socket.io標準的例子會工作,這裏的我的打字稿版本:

var socket=io.connect("localhost"); 
socket.on("news",(data:any)=>alert(data)); 
socket.emit("news","hello"); 
+0

,我們可以得到這樣的發揮好與https://github.com/borisyankov/DefinitelyTyped/blob/ master/socket.io/socket.io.d.ts? – ubershmekel

11

有@類型/ socket.io現在,只需通過運行安裝:

npm i --save @types/socket.io