【发布时间】:2016-08-05 15:40:17
【问题描述】:
我在 Typescript 中定义了一个简单的User 类,如下所示
export class User {
constructor(public id: string);
}
我从我的 socket.io 服务器发出一条消息,其中包含此 User 类的实例化版本,例如,
var user = new User('billy');
io.emit('MyMessage', user);
在我的客户端上,我按如下方式收听我的消息
io.on('MyMessage', (user: User) => {
console.log(user); // This prints '[object]'
console.log(user.id); // This prints 'undefined'
console.log(user[0].id); // This prints 'billy'
}
因此,套接字之间的数据似乎是作为对象数组发送的,emit 方法的打字稿定义也显示了这一点,即,
emit( event: string, ...args: any[]): Namespace;
因此,对我来说,使用发送的数据来使用数组寻址是最简洁的方式,如上面第三个控制台日志行所示,即user[0].id,还是有更简洁的方式来做到这一点?
【问题讨论】:
标签: javascript typescript socket.io