ich eine einfache User
Klasse in Typoskript definiert alsEmitting Typoskript Datenobjekte auf Socket.IO
export class User {
constructor(public id: string);
}
von meinem socket.io Server folgt ausstoßen ich eine Nachricht mit einer instanziierten Version dieser User
Klasse, zum Beispiel,
var user = new User('billy');
io.emit('MyMessage', user);
auf meinem Client ich für meine Nachricht zu hören, wie
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'
}
folgt
Daten zwischen den Buchsen daher als ein Array von Objekten gesendet werden wird, zeigt die Typoskript Definition für das emit
Verfahren auch dies, dh
emit(event: string, ...args: any[]): Namespace;
Damit ist der sauberste Weg für mich, um die gesendeten Daten zu verwenden, um Verwenden Sie die Array-Adressierung wie in der dritten Protokollzeile der Konsole oben gezeigt, z. B. user[0].id
, oder gibt es eine sauberere Möglichkeit, dies zu tun?
Sein neuer zu verwalten, der destrukturierende syntaktische Zucker ist das Süßeste, was ich heute gelernt habe! –