10

我想在我的 Typescript 项目中使用 socket.io,但我只找到了用于服务器端 typescript 的 .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");

当前范围内不存在名称“io”

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

4

4 回答 4

33

现在有@types/socket.io,只需通过运行安装它:

npm i --save @types/socket.io

于 2017-02-14T09:48:37.207 回答
13

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

于 2015-10-10T12:11:45.453 回答
11

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

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

这个声明文件可以导入到客户端 Typescript 并且 socket.io 标准示例可以工作,这是我的 Typescript 版本:

var socket=io.connect("localhost");
socket.on("news",(data:any)=>alert(data));
socket.emit("news","hello");
于 2012-12-30T16:55:42.453 回答
3

在里面@types/socket.io-client,您可以找到以下最适合客户的类型:

const client: SocketIOClient.Socket = io('http://localhost');
于 2020-07-15T16:36:14.137 回答