TypeScript和Socket.io

lhk*_*lhk 5 javascript node.js socket.io web typescript

我想在我的Typescript项目中使用socket.io,但我只找到了服务器端打字稿的.d.ts文件.

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

它展示了如何将TypeScript与Socket.io结合使用.但是在客户端它使用JavaScript.

我需要的是客户端TypeScript的.d.ts文件,该文件解决了此行的错误消息:

var socket=io.connect("localhost");
Run Code Online (Sandbox Code Playgroud)

当前范围中不存在名称"io"

我在哪里可以找到合适的定义文件?

Nic*_*k D 17

现在有@ types/socket.io,只需运行即可安装:

npm i --save @types/socket.io

  • 对于客户端:npm i --save @ types / socket.io-client (2认同)

ben*_*nyl 13

您应该在客户端中使用socket.io-client d.ts文件,并在服务器上使用socket.io d.ts文件.


lhk*_*lhk 8

我创建了自己的.d.ts文件,它很短但效果很好:

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

这个声明文件可以导入客户端的Typescript,socket.io标准的例子也可以,这里是我的Typescript版本:

var socket=io.connect("localhost");
socket.on("news",(data:any)=>alert(data));
socket.emit("news","hello");
Run Code Online (Sandbox Code Playgroud)