javascript - 无法将回调函数从 SocketIO 传递到打字稿
问题描述
我的服务器是使用 SocketIO 用 nodeJS + Typescript 编写的,这是一个在线聊天应用程序,但我无法使用 TypeScript 传输库中提供的回调
如何正确调用回调?下面的代码会抛出错误
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()
})
})
错误
参数“回调”隐式具有“任何”类型。
解决方案
尝试更改以下行:
socket.on('login', ({ name, room }: Date, callback: Function) => {
推荐阅读
- python - 如何在 Python 中的数据框字典中相互补充
- php - 如何从数据库中获取 PHP 中每张卡片中的不同帖子
- java - java.sql.SQLException:组函数的使用无效
- ios - UICollectionViewFlowLayout `targetContentOffset` - 如何在方向改变后保持单元格居中?
- python - 连接两个数据帧时的 NaN 值
- shopify - 如何使用液体提取所有产品网址
- javascript - Nuxt.js3 插件的上下文变得未定义
- c - 递归函数,查找给定数字内的偶数或奇数
- docker - 使用 user-remap 挂载到 Docker 容器的文件系统
- android-studio - 如何从抽屉菜单标题项导航到特定片段