2013-12-18 34 views
0

我想测试此代码显示在我的打字稿项目中的socket.io站点,但打字稿定义似乎没有在此功能中调用的界面:Socket.io打字稿定义看起来不正确

这里是我的代码:

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

回答

2

它看起来像socket.io API changed between 0.6 and 0.7并且声明文件尚未更新以反映该情况。所以你没有做错任何事情。

大多数声明文件由志愿者维护,与他们描述的项目无关。如果你可以写一个新的声明文件并将其提交给肯定会被赞赏的项目。我仍然认为this是迄今为止最好的指南。

+0

它很高兴知道..尽管我对Typescript和定义文件是新手 - 所以我正在调整我的方式。但是如果我让一个没有错误的论坛运行的话 - 我可能会上传它。 – EternallyCurious

+0

@EternallyCurious这些文件在8小时前刚刚更新(在您的文章后3次)。可能想尝试获取最新信息并查看它是否有效,如果不行,请创建一个问题(https://github.com/borisyankov/DefinitelyTyped/issues),并希望有人会为您更新:) – John