我有这样的密码:
///<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:找不到名称“sio”。
support.ts(14,47):错误ts2304:找不到名称“sio”。
如果我用'string'代替'sio.socket'故意得到一个错误,它会告诉我期望的类型是server。现在,不管我是使用sio.server还是server,都没有区别,仍然存在一个名称错误,我不明白该如何使用.d.ts文件中的类型,也找不到适合它的文档或示例。
希望有人能帮助我!谢谢~
最佳答案
通过读取.d.ts file,预期的类型名实际上是SocketIO.Server
(而不是sio.Server
)。这个特殊的.d.ts文件全局公开类型名,而不是通过外部模块导出。
这里的奇怪错误(找不到名称“sio”)是因为类型名称空间中没有名为sio
的内容。