Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为IntelliJ代码完成注释SocketIO命名空间?_Javascript_Node.js_Intellij Idea_Static Analysis - Fatal编程技术网

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

Javascript 如何为IntelliJ代码完成注释SocketIO命名空间?,javascript,node.js,intellij-idea,static-analysis,Javascript,Node.js,Intellij Idea,Static Analysis,一个可能很迂腐的问题:我很喜欢IntelliJ的类型检查,想知道如何帮助它解决更复杂的类型 在我的NodeJS项目中,我将SocketIO命名空间传递给控制器类的构造函数 我想让IntellJ的代码分析工具知道SocketIO命名空间继承自EventEmitter(或至少实现其方法) 那么,是否有一种用于注释JS变量(可能特定于节点)的语法,在这种语法中,您可以使用模块名作为名称空间,以便像这样的静态分析工具可以正确解析它们 在SocketIO中,主类只是“Server”,这很容易与许多其他类似

一个可能很迂腐的问题:我很喜欢IntelliJ的类型检查,想知道如何帮助它解决更复杂的类型

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

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

那么,是否有一种用于注释JS变量(可能特定于节点)的语法,在这种语法中,您可以使用模块名作为名称空间,以便像这样的静态分析工具可以正确解析它们

在SocketIO中,主类只是“Server”,这很容易与许多其他类似的服务器类混淆,而且我还没有深入挖掘,以找到在中返回的类 对(…)的调用的响应
io.

非常感谢任何帮助或指点

// 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();