JavaScript 和 QML 检查
要运行静态检查,请访问Tools >QML/JS >Run Checks 或选择Ctrl+Shift+C。
在问题中的QML 和QML Analysis 过滤器中查看结果。
注意: 如果为项目打开QML Language Server ,它会使用qmllint检查 QML 和 JavaScript 代码并生成警告,因此错误代码和信息与JavaScript 和 QML 错误代码中的不同。
启用和禁用信息
启用和禁用静态分析器的 QML 和 JavaScript 消息:
- 转到首选项> > 。 Qt Quick>QML/JS Editing 。
- 选择Use customized static analyzer 。
- 在Enabled 中,选择要查看的消息。
- 要只显示Qt Quick UI 文件的特定信息,请在 Only for Qt Quick UI.您不能只为非Qt Quick UI 文件启用消息。
JavaScript 和 QML 错误代码
许多错误信息与 Douglas Crockford 的JSLint工具中的信息相似。有关 JSLint 错误的更多信息,请参阅JSLint 错误解释。
代码 | 严重程度 | 信息 | 说明 |
---|---|---|---|
M1 | 错误 | 枚举值无效 | |
M2 | 错误 | 枚举值必须是字符串或数字 | |
M3 | 错误 | 预期数值 | |
M4 | 错误 | 预期布尔值 | |
M5 | 错误 | 预期字符串值 | |
M6 | 错误 | 无效 URL | |
M7 | 警告 | 文件或目录不存在 | |
M8 | 错误 | 颜色无效 | |
M9 | 错误 | 预期锚点线 | |
M10 | 错误 | 属性绑定重复 | 有关详细信息,请参阅JSLint 错误解释中的重复键"{a}"。 |
M11 | 错误 | 预期标识符 | 更多信息,请参见JSLint Error Explanations 中的Expected an identifier and instead saw '{a}' (a reserved word)。 |
M14 | 错误 | 无效 id | 更多信息,请参阅 JSLint ErrorExplansion 中的 Expected an identifier and instead saw '{a}' (a reserved word)。 |
M15 | 错误 | 重复标识符 | 文件中的标识符必须是唯一的。更多信息,请参见重复的键 '{a}'。 |
M16 | 错误 | 属性名称无效name | |
M17 | 错误 | Name 没有成员 | |
M18 | 错误 | Field 不是object | |
M19 | 警告 | 条件中的赋值 | 可能是输入错误。如果是有意为之,请用括号将赋值包起来。 |
M20 | 警告 | 未结束的非空案例块 | 例块要么为空,要么以流程控制语句(如break ,return 或continue )结束。或者,也可以以// fall through 注释结束,以表示有意中断。 |
M23 | 警告 | 不要使用eval | 有关详细信息,请参阅JSLint 错误解释中的eval is evil。 |
M28 | 警告 | 无法访问 | 表示下划线语句永远不会被执行。 |
M29 | 警告 | 请勿使用with | 有关详细信息,请参阅JSLint 错误解释中的意外 "with"。 |
M30 | 警告 | 请勿使用逗号表达式 | |
M31 | 警告 | 不必要的信息压制 | |
M103 | 警告 | Name 已是正式参数 | |
M104 | 警告 | Name 已经是一个函数 | |
M105 | 警告 | 变量name 在其声明之前被使用 | |
M106 | 警告 | Name 已经是一个变量 | |
M107 | 警告 | Name 已声明多次 | 在函数中声明的变量在函数的任何地方都是可见的,即使是在嵌套块或for 语句条件中声明的变量也是如此。重新声明变量无效。 |
M108 | 警告 | 函数name 在声明之前被使用 | 更多信息,请参阅JSLint 错误解释中的 {a} 在定义之前被使用。 |
M109 | 警告 | 请勿将Boolean 用作构造函数 | 更多信息,请参见JSLint Error Explanations 中的Do not use {a} as a constructor。 |
M110 | 警告 | 请勿将String 用作构造函数 | 更多信息,请参阅"请勿将 {a} 用作构造函数"。 |
M111 | 警告 | 请勿将Object 用作构造函数 | 更多信息,请参见不要将 {a} 用作构造函数。 |
M112 | 警告 | 请勿将Array 用作构造函数 | 更多信息,请参见不要将 {a} 用作构造函数。 |
M113 | 警告 | 请勿将Function 用作构造函数 | 更多信息,请参阅不要将 {a} 用作构造函数。 |
M114 | 提示 | function 关键字和开头的括号之间应该用一个空格隔开 | 如需了解更多信息,请参阅JSLint Error Explanations 中的Expected exactly one space between {a} and {b}。 |
M115 | 警告 | 请勿使用独立代码块 | 块不会影响变量的作用域。因此,未与if ,while 等相关联的块没有任何作用,应避免使用。 |
M116 | 警告 | 请勿使用 void 表达式 | |
M117 | 警告 | 混淆的复数 | 更多信息,请参阅JSLint 错误解释中的混淆冒号。 |
M119 | 警告 | 混淆的减号 | 更多信息,请参阅JSLint 错误说明中的混淆减号。 |
M121 | 提示 | 在一行中声明所有函数变量 | |
M123 | 提示 | 不必要的括号 | |
M126 | 警告 | == 和 可能会执行类型强制,请使用 或 以避免这种情况。!= === !== | 非严格相等比较允许将参数转换为通用类型。这会导致意想不到的结果,如' \t\r\n' == 0 为真。请使用严格的相等运算符=== 和!== ,并明确说明所需的转换。 |
M127 | 警告 | 表达式语句只能是赋值、调用或删除表达式 | |
M128 | 错误 | 一个状态不能有指定的子项 | |
M129 | 错误 | 类型不能递归实例化 | |
M201 | 提示 | 将 var 声明放在函数的开头 | 有关详细信息,请参阅JSLint 错误解释中的将 "var "声明移至函数顶部。 |
M202 | 提示 | 每行只使用一条语句 | |
M220 | 错误 | 不支持此类型(类型名称)作为用户界面文件(.ui.qml)的根元素 | 有关支持的 QML 类型的更多信息,请参阅UI 文件。 |
M221 | 错误 | UI 文件 (.ui.qml) 中不支持该类型(类型名称)。 | 有关支持的 QML 类型的更多信息,请参阅UI 文件。 |
M222 | 错误 | 用户界面文件 (.ui.qml) 不支持函数 | 有关支持的 JavaScript 函数列表,请参阅支持的方法。 |
M223 | 错误 | 用户界面文件(.ui.qml)中不支持 JavaScript 块 | 有关支持的功能的更多信息,请参阅UI 文件。 |
M224 | 错误 | 用户界面文件 (.ui.qml) 中不支持行为类型。 | 有关支持的 QML 类型的更多信息,请参阅用户界面文件。 |
M225 | 错误 | 用户界面文件(.ui.qml)中的根项只支持状态。 | 有关支持的功能的更多信息,请参阅用户界面文件。 |
M226 | 错误 | 不支持在用户界面文件(.ui.qml)中引用根项的父项。 | 有关支持功能的更多信息,请参阅用户界面文件。 |
M227 | 错误 | 请勿在用户界面文件(.ui.qml)中混合使用翻译函数 | 即使支持几种不同的翻译函数(如qsTr 和qsTrId ),也应选择一种并在 UI 文件中统一使用。更多信息,请参阅Qt QML 方法。 |
M300 | 错误 | 未知组件 | |
M301 | 错误 | 无法解析name 的原型object | |
M302 | 错误 | 无法解析原型name | |
M303 | 错误 | 原型循环,最后一个非重复组件是name | |
M304 | 错误 | 属性类型无效name | |
M305 | 警告 | == 和 执行类型强制,请使用 或 以避免这种情况。!= === !== | 参见M126。 |
M306 | 警告 | 调用以大写字母开头的函数时应使用new | 按照惯例,以大写字母开头的函数是构造函数,只能与new 一起使用。 |
M307 | 警告 | 仅在以大写字母开头的函数中使用new | 有关详细信息,请参阅JSLint 错误解释中的不要将 {a} 用作构造函数。 |
M308 | 警告 | 请勿将Number 用作构造函数 | 更多信息,请参阅不要将 {a} 用作构造函数。 |
M309 | 提示 | 在二进制运算符周围使用空格 | |
M310 | 警告 | 无意空块,使用 ({}) 表示空对象字面量 | |
M311 | 提示 | 使用type 代替var 或variant 以提高性能 | |
M312 | 错误 | 缺少属性number | |
M313 | 错误 | 预期对象值 | |
M314 | 错误 | 预期数组值 | |
M315 | 错误 | Value 预期值 | |
M316 | 错误 | 最大数值为number | |
M317 | 错误 | 最小数值为number | |
M318 | 错误 | 最大数值为不包括的数值 | |
M319 | 错误 | 最小数值为排他值 | |
M320 | 错误 | 字符串值与要求的模式不匹配 | |
M321 | 错误 | 最小字符串值长度为number | |
M322 | 错误 | 最大字符串值长度为number | |
M323 | 错误 | Number 数组值中的预期元素 | 更多信息,请参阅JSLint 错误解释中的数组字面符号 [] 更可取。 |
M324 | 错误 | 访问 AST 时触及最大递归限制,代码模型将不可靠且很可能无效 | |
M326 | 错误 | 组件只允许有一个子元素 | 更多信息,请参见Component 。 |
M327 | 警告 | 组件需要一个子元素 | 更多信息,请参见Component 。 |
M400 | 警告 | 重复导入 | 导入语句已添加两次。有关详细信息,请参阅导入语句。 |
M401 | 错误 | 不要将根项目作为别名引用 | 别名属性不能直接引用根组件。请为该组件创建一个实例。 |
M402 | 警告 | 避免在层次结构中引用根项目 | 别名属性不能引用层次结构中的根组件。请创建该组件的实例。 |
M403 | 错误 | 当条件不能包含对象 | 将when 条件设置为当条件满足时求值为true 的表达式。 |
重置代码模型
如果在添加新 QML 模块后看到以下错误信息,请尝试构建项目,然后重置代码模型:
- 未找到 QML 模块。
- 未知组件 (M300)。
要查看错误信息,请在代码编辑器中或在Qt Design Studio 中打开 QML 文件时,将鼠标指针移至Qt Creator 有下划线的代码上。
要重置代码模型,请选择Tools >QML/JS >Reset Code Model 。
另请参阅 检查代码语法、与插件一起使用 QML 模块和分析代码。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.