Mat*_*oli 32 javascript arrays
我有以下工作代码:
var routes = [];
Run Code Online (Sandbox Code Playgroud)
用于javascript的Eclipse验证器打印以下警告:
Type mismatch: cannot convert from any[] to any
Run Code Online (Sandbox Code Playgroud)
我的空阵列出了什么问题?
编辑:警告后来消失了.显然Eclipse错了,问题需要关闭.对于那个很抱歉.
小智 39
您的JavaScript是有效的,问题在于Eclipse的JSDT插件.在最新版本中,他们引入了类型验证,这在许多情况下都存在问题 - 不仅适用于空数组(如您的情况).另一个典型案例可能如下所示:a = b || c;
当b和c属于不同类型时,插件会抱怨(这是JavaScript的绝对有效代码).已经向JSDT开发人员报告了有关此问题的几个错误,但问题尚未解决.
不幸的是,目前无法使用Eclipse中的JSDT配置屏幕关闭类型验证.我直接从JSDT源代码中关闭它.为此,请按以下步骤操作:
org.eclipse.wst.jsdt.debug.core
使用Eclipse 打开项目.确保安装了Eclipse SDK.可能还需要调整plugin.xml
文件中的某些依赖项.computeSeverity
方法中ProblemReporter
.case IProblem.TypeMismatch: return ProblemSeverities.Warning;
withcase IProblem.TypeMismatch: return ProblemSeverities.Ignore;
org.eclipse.wst.jsdt.core<version>.jar
- 制作它的安全副本,然后打开jar文件并将文件替换为ProblemReporter.class
您在步骤5中编译的文件(该文件位于bin
项目的文件夹中).重要!确保您已下载了在Eclipse中使用的相同版本的JSDT.最终,您可以替换整个插件,而不是替换单个文件.
如果您不想自己下载和编译插件,可以尝试使用我的固定版本.我把它放在我的FunctionSack网页上.我正在使用Eclipse 3.7(Indigo)和JSDT 1.3.0,所以如果你想使用我的文件,请确保你有类似的配置.
Ily*_*mov 11
eclipse的web工具平台插件(wtp)包含一个JavaScript验证器,它对对象文字"{}"和数组文字"[]"符号有些过敏,它还会显示一些其他恼人的"问题",例如"缺少分号"等等
我找到了最适合我的解决方案,我的神经是完全禁用wtp嵌入式JavaScript验证并使用第三方插件.令人惊讶的是,禁用JavaScript验证器并不容易.每个eclipse版本都需要不同的方法,因此请尝试以下指南:
禁用wtp验证程序后,您可以尝试使用第三方工具,如jsLint/jsHint