我已经使用
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');