如何修复WebStorm无法识别某些Node.js Express属性?

gsi*_*ank 23 syntax-highlighting intellij-idea node.js express webstorm

执行后express mysite,``npm install -d`我用WebStorm打开生成的目录,IDE无法识别以下Express方法:

app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
Run Code Online (Sandbox Code Playgroud)

如何解决?

注意:在我执行操作后,IDE能够识别许多新内容,并在设置中将模块目录添加为JavaScript库,但仍然无法识别上述方法.查看图像以查看IDE到目前为止所识别的内容在此输入图像描述

在下面的图像中,您可以看到IDE仍无法识别的内容:

在此输入图像描述

gus*_*nke 15

这几乎适用于任何JS项目.您应该显式定义对象的属性编写JSDocs:

/**
 * @memberOf   myLib
 * or
 * @name       myLib.MyDynamicallyLoadedModule
 */
var MyDynamicallyLoadedModule = {};
Run Code Online (Sandbox Code Playgroud)

否则,WebStorm无法理解您具有动态属性.

(是的,我知道你在提到Express,但这就是WebStorm的工作方式)

  • 您可以在WebStorm 7中使用来自https://github.com/borisyankov/DefinitelyTyped/blob/master/express/express.d.ts的TypeScript存根,包括最新的EAP.将其添加为库也可以在"设置"|"JavaScript"|"库"|"下载"中完成. (20认同)
  • 谢谢你的解释。 (2认同)
  • @ de1mar - 您的解决方案在IDEA 13 Ultimate中完美运行,谢谢!为什么这不包含/配置在Intellij中的nodejs启动项目是超出我的... (2认同)