【问题标题】:Can't pass callback function from SocketIO to typescript无法将回调函数从 SocketIO 传递到打字稿
【发布时间】:2021-05-22 14:06:33
【问题描述】:

我的服务器是使用 SocketIO 用 nodeJS + Typescript 编写的,这是一个在线聊天应用程序,但我无法使用 TypeScript 传输库中提供的回调

如何正确调用回调?下面的代码会报错

Code Screenshot

const { addMember, getMember, deleteMember, getMembers } = require('./members')

const app = require('express')()
const http = require('http').createServer(app)
const io = require('socket.io')(http)
const cors = require('cors')
const PORT = process.env.PORT || 5000

interface Date {
    name: string,
    room: string
}

declare type MyHandler = (myArgument: string) => void;

app.use(cors())
io.on('connection', (socket: any) => {
    console.log("User connected");
    socket.on('login', ({ name, room }: Date, callback) => {
        console.log("User");
        const { user, error } = addMember(socket.id, name, room)
        if (error) return callback(error)
        socket.join(user.room)
        socket.in(room).emit('notification', { title: 'Кто то вошел', description: `${user.name} присоеденился к нам` })
        io.in(room).emit('users', getMembers(room))
        callback()
    })
})

错误

参数“回调”隐含的类型为“任意”。

【问题讨论】:

  • 您能否以文本而不是图像的形式提供您的代码。您能否将收到的错误信息作为文本提供?
  • @ErangaHeshan 当然
  • 能否补充一下如何创建socket和socket-io库的import语句?
  • @ErangaHeshan 当然

标签: javascript node.js typescript sockets socket.io


【解决方案1】:

尝试更改以下行:

socket.on('login', ({ name, room }: Date, callback: Function) => {

【讨论】:

  • 非常感谢!
  • 乐于助人!
猜你喜欢
  • 1970-01-01
  • 2023-02-09
  • 1970-01-01
  • 2021-09-27
  • 2017-06-05
  • 2020-08-27
  • 2021-11-27
  • 2020-04-24
  • 1970-01-01
相关资源
最近更新 更多