我有这样的代码:
///<reference path='typescript_defs/node.d.ts' />
///<reference path='typescript_defs/socket.io.d.ts' />
import sio = require('socket.io');
function main(io: sio.Server) {
io.sockets.on('connection', function(socket: sio.Socket) {
});
}
main(sio.listen(4444));
我预计这会在阅读并查看其他示例后起作用,但它在sio.Server和sio.Socket上给出了名称错误
support.ts(12,19):错误TS2304:找不到姓名&#39; sio&#39;。
support.ts(14,47):错误TS2304:找不到姓名&#39; sio&#39;。
如果我把&#39; string&#39;取代&#s; sio.Socket&#39;故意得到一个错误它告诉我预期的类型是服务器。现在,无论我使用的是sio.Server还是Server,它都没有任何区别,仍然存在名称错误,我不明白我应该如何使用.d.ts文件中的类型并且无法使用找到适合它的文档或示例。
希望有人能帮助我!感谢〜答案 0 :(得分:2)
通过阅读.d.ts file,预期的类型名称实际为SocketIO.Server
(不是sio.Server
)。此特定的.d.ts文件全局公开类型名称,而不是通过外部模块导出。
这里的奇怪错误(找不到名称'sio')是因为 type 名称空间中没有任何内容名为sio
。