我正在尝试在我的typescript项目中测试socket.io站点中显示的此代码,但是Typescript定义似乎没有在此函数中调用的接口:
这是我的代码:
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
这是错误:
error TS2094: The property 'sockets' does not exist on value of type '{ listen: { (server: http.Server, options: any, fn: Function): SocketManager; (server: http.Server, fn?: Function): SocketManager; (port: Number): SocketManager; }; }'.
这是d.ts文件:
https://github.com/borisyankov/DefinitelyTyped/blob/master/socket.io/socket.io.d.ts#L68
答案 0 :(得分:2)
看起来socket.io API changed between 0.6 and 0.7和声明文件尚未更新以反映这一点。所以你没有做错任何事。
大多数申报文件由志愿者维护,与他们描述的项目无关。如果您可以编写一个新的声明文件并将其提交给肯定的项目,那将是值得赞赏的。我仍然认为this是迄今为止最佳指南。