如何为IntelliJ代码完成注释SocketIO命名空间?

时间:2015-01-09 01:06:27

标签: javascript node.js intellij-idea static-analysis

也许是一个迂腐的问题:我很享受IntelliJ的类型检查,并想知道如何帮助它解决更复杂的类型。

在我的NodeJS项目中,我将SocketIO名称空间传递给控制器​​类的构造函数。

我希望IntellJ的代码分析工具知道SocketIO名称空间继承自EventEmitter(或至少实现其方法)。

// In another file (controller.js)
function MyController(namespace){
  /** @var ???? **/
  this.ns = namespace;
}

MyController.prototype.doSomething = function(){
// ....
this.ns.emit('my-event'); // IntelliJ complains (rightly) that it doesn't know about emit()
}

module.exports = MyController;

// In my main file (index.js)
var Controller = require('./controller);
var http = require('http');
var io = require('socket.io')(http.createServer);  
var ns = io.of('/namespace');

var ctrl = new Controller(ns);
ctrl.doSomething();

那么是否存在用于注释JS变量(可能特定于Node)的语法,您可以将模块名称用作命名空间,这样的静态分析工具可以正确解析它们?

在SocketIO中,主要类只是“服务器”,很容易混淆许多其他类似的服务器类,而且我还没有深入挖掘到找到返回的类。 致电io.of(...)

的回应

非常感谢任何帮助或指示!

0 个答案:

没有答案