如何为 Typescript 使用 socket.IO 客户端类型定义?

Kok*_*oko 7 socket.io typescript typescript-typings

我已经使用安装了 SocketIO 客户端的 Typescript 定义

npm install @types/socket.io-client
Run Code Online (Sandbox Code Playgroud)

但是在 VS Code 中,我仍然遇到类型错误:

let socket: SocketIOClientStatic = io() 
Run Code Online (Sandbox Code Playgroud)

类型 'Socket' 缺少来自类型 'SocketIOClientStatic' 的以下属性:协议、套接字、管理器、管理器 (2739)

所有这些属性都没有在智能感知或 socketIO 文档中作为选项提到...... io()

如何在 SocketIO 客户端中使用 Typescript?

Obl*_*sys 15

io函数具有返回类型SocketIOClient.Socket而不是SocketIOClientStatic. 如果您使用该类型,或完全省略签名,它会按预期工作:

import io from 'socket.io-client';

const socket: SocketIOClient.Socket = io('http://localhost');
const anotherSocket = io('http://localhost');
Run Code Online (Sandbox Code Playgroud)


小智 7

在客户端版本 4.x 上

import { io, Socket } from "socket.io-client";
Run Code Online (Sandbox Code Playgroud)