如何使用套接字.打字稿的 IO 客户端类型定义



我已经使用

npm install @types/socket.io-client

但是在VS代码中,我仍然收到类型错误:

let socket: SocketIOClientStatic = io() 
类型">

套接字"缺少类型"套接字IOClientStatic"中的以下属性:协议,套接字,管理器,管理器(2739(

所有这些属性都没有在智能感知或 socketIO 文档中作为选项提及......创建io()时不需要它们

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

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

import io from 'socket.io-client';
const socket: SocketIOClient.Socket = io('http://localhost');
const anotherSocket = io('http://localhost');

在客户端版本 4.x 上

import { io, Socket } from "socket.io-client";
我想

扩展Oblosys的答案:

如果 esModuleInterop 标志处于活动状态,并且您收到一条错误消息,例如

此模块使用 'export =' 声明,并且只能使用使用"esModule互操作"标志时的默认导入。

然后使用 as -语法进行导入:

import * as io from 'socket.io-client';
const socket: SocketIOClient.Socket = io('http://localhost');

最新更新