定义或抑制特定对象的WebStorm代码分析

定义或抑制特定对象的WebStorm代码分析,webstorm,Webstorm,WebStorm代码分析工具有问题 在node express服务器中,我发送了一个对象: var configSummary = { 'siteDirs': siteDirs, etc... }; res.status(200).send(configSummary); 在web应用程序中,我使用jQuery请求express服务器发回JSON对象: $.getJSON('/makers/config', function(configSummary) { configSumma

WebStorm代码分析工具有问题

在node express服务器中,我发送了一个对象:

var configSummary = {
  'siteDirs': siteDirs,
  etc...
};
res.status(200).send(configSummary);
在web应用程序中,我使用jQuery请求express服务器发回JSON对象:

$.getJSON('/makers/config', function(configSummary) {
  configSummary.siteDirs.forEach(etc...
})

代码运行时没有错误,但我的web应用程序的WebStorm代码分析注释器相当合理地抱怨configSummary.siteDirs是一个未解析的变量。我知道如何用注释抑制编辑器中的错误,但我不喜欢这种解决方案。相反,我想教WebStorm有关configSummary对象的知识,或者告诉它忽略客户端JavaScript文件中的“类型”。如何做到这一点?

在实际数据仅在运行时已知的情况下(例如,当数据是通过ajax调用设置的值时),在静态分析期间无法重新解析,因此会出现错误

无法抑制特定错误类型的分析-只能抑制使用注释的语句的分析。但是您可以让IDE知道您的数据是什么样子的。 使用JSDoc注释的可能解决方案:

/**
 * @typedef {Object} configSummary
 * @property {Object} siteDirs
  */
...

$.getJSON('/makers/config', function (/** configSummary */ configSummary) {
    configSummary.siteDirs.forEach(...)
})
有关其他可能的解决方法,请参见。
您可以从plugins/JavaScriptLanguage/lib/JavaScriptLanguage.jar打开任何.js库文件/com/intellij/lang/javascript/index/prefined/查看存根定义在实际数据仅在运行时已知(例如,当数据是通过ajax调用设置的值时)的情况下是什么样子,在静态分析期间无法重新解析,从而导致错误

无法抑制特定错误类型的分析-只能抑制使用注释的语句的分析。但是您可以让IDE知道您的数据是什么样子的。 使用JSDoc注释的可能解决方案:

/**
 * @typedef {Object} configSummary
 * @property {Object} siteDirs
  */
...

$.getJSON('/makers/config', function (/** configSummary */ configSummary) {
    configSummary.siteDirs.forEach(...)
})
有关其他可能的解决方法,请参见。 您可以从plugins/JavaScriptLanguage/lib/JavaScriptLanguage.jar打开任何.js库文件/com/intellij/lang/javascript/index/prefined/查看存根定义