JavaScript 和 QML 检查
要运行静态检查,请转到 工具 > QML/JS > 运行检查 或按 Ctrl+Shift+C。
在 问题 中的 QML 和 QML 分析 过滤器中查看结果。
启用和禁用消息
要启用和禁用 QML 和 JavaScript 消息
- 转到 首选项 > Qt Quick > QML/JS 编辑。
- 选择 使用自定义静态分析器。
- 在 已启用 中,选择您想看到的消息。
- 要为非 Qt Quick UI 文件禁用消息,请在 禁用非 Qt Quick UI 消息 中选择它们。您不能只为非 Qt Quick UI 文件启用消息。
JavaScript 和 QML 错误代码
许多错误消息都与 Douglas Crockford 的 JSLint 工具中相似。有关 JSLint 错误的更多信息,请参阅 JSLint 错误说明。
Id | 严重性 | 消息 | 描述 |
---|---|---|---|
M1 | Error | 枚举的值无效 | |
M2 | Error | 枚举值必须是字符串或数字 | |
M3 | Error | 期望数值 | |
M4 | Error | 期望布尔值 | |
M5 | Error | 期望字符串值 | |
M6 | Error | 无效的 URL | |
M7 | Warning | 文件或目录不存在 | |
M8 | Error | 无效的颜色 | |
M9 | Error | 期望锚线 | |
M10 | Error | 重复属性绑定 | 另请参阅:重复键 '{a}'。 |
M11 | Error | 期望 id | 另请参阅:期望标识符,而不是遇到 '{a}' (一个保留字)。 |
M14 | Error | 无效 id | 另请参阅:期望标识符,而不是遇到 '{a}' (一个保留字)。 |
M15 | Error | 重复 id | 文件中的ID必须唯一。另请参阅:重复键'{a}'。 |
M16 | Error | 无效的属性名 name | |
M17 | Error | Name 没有成员 | |
M18 | Error | Field 不是 object 的成员 | |
M19 | Warning | 条件语句中的赋值 | 可能是按键错误。如果是故意的,用括号括起赋值。 |
M20 | Warning | 未终止的非空case块 | case块应该是空的或者应以一些流程控制语句结束,例如 break ,return 或 continue 。或者你也可以通过在末尾加上一个 // fall through 注释来表明故意跳过。 |
M23 | Warning | 不要使用 eval | 另请参阅:eval 是邪恶的。 |
M28 | Warning | 不可达 | 表明下划线语句永远不会被执行。 |
M29 | Warning | 不要使用 with | 另请参阅:意外的 'with'。 |
M30 | Warning | 不要使用逗号表达式 | |
M31 | Warning | 不必要的消息抑制 | |
M103 | Warning | Name 已经是一个形式参数 | |
M104 | Warning | Name 已经是一个函数 | |
M105 | Warning | Var name 在其声明之前被使用 | |
M106 | Warning | Name 已经是 var | |
M107 | Warning | Name 被声明过多次 | 在函数中声明的变量总是在函数的任何地方可见,即使在嵌套的块中或在 for 语句条件中声明。重新声明变量不会有任何效果。 |
M108 | Warning | 在声明之前使用了函数 name | 另请参阅:{a} 在定义之前被使用了。 |
M109 | Warning | 不要将 Boolean 用作构造函数 | 另请参阅:不要使用 {a} 作为构造函数。 |
M110 | Warning | 不要将 String 用作构造函数 | 另请参阅:不要使用 {a} 作为构造函数。 |
M111 | Warning | 不要将 Object 用作构造函数 | 另请参阅:不要使用 {a} 作为构造函数。 |
M112 | Warning | 不要将 Array 用作构造函数 | 另请参阅:不要使用 {a} 作为构造函数。 |
M113 | Warning | 不要将 Function 用作构造函数 | 另请参阅:不要使用 {a} 作为构造函数。 |
M114 | 提示 | function 关键字和开括号之间应该有一个空格 | 另请参阅:期望在 {a} 和 {b} 之间恰好有一个空格。 |
M115 | Warning | 不要使用独立块 | 块不会影响变量作用域。因此,与 if ,while 等 不相关的块是无效的,应该避免。 |
M116 | Warning | 不要使用 void 表达式 | |
M117 | Warning | 混淆的加号 | 另请参阅:混淆的加号。 |
M119 | Warning | 混淆的减号 | 另请参阅:混淆的减号。 |
M121 | 提示 | 在一行上声明所有的函数变量 | |
M123 | 提示 | 不必要的括号 | |
M126 | Warning | == 和 != 可能执行类型转换,使用 === 或 !== 来避免它 | 非严格相等比较允许将其参数转换为公共类型。这可能导致意外的结果,例如 ' \t\r\n' == 0 为真。使用严格相等运算符 === 和 !== 并明确您所需的转换。 |
M127 | Warning | 表达式语句应该是赋值、调用或删除表达式 | |
M128 | Error | 状态无法拥有指定的子项 | |
M129 | Error | 类型不能递归实例化 | |
M201 | 提示 | 将变量声明放置在函数的开始处 | 另请参阅:[将 'var' 声明移动到函数顶部](http://linterrors.com/js/move-var-declarations-to-the-top-of-the-function)。 |
M202 | 提示 | 每行只使用一个语句 | |
M203 | Warning | Qt设计工作室不支持 imperative 代码 | |
M204 | Warning | Qt设计工作室不支持此 QML 类型 | |
M205 | Warning | Qt设计工作室无法正确解析对父 QML 类型的引用 | |
M206 | Warning | 此视觉属性绑定无法在本地上下文中评估,并且可能不会按预期在 Qt 设计工作室中显示 | |
M207 | Warning | Qt设计工作室仅支持根 QML 类型中的状态 | |
M208 | Error | 此 ID 可能存在歧义,并且不被 Qt 设计工作室支持 | |
M209 | Error | 此类型(类型名称)不能作为 Qt 设计工作室的根元素支持 | |
M220 | Error | 此类型(类型名称)不能作为 UI 文件(.ui.qml)的根元素支持 | 有关支持的 QML 类型的更多信息,请参阅UI 文件。 |
M221 | Error | 此类型(类型名称)在 UI 文件(.ui.qml)中不支持 | 有关支持的 QML 类型的更多信息,请参阅UI 文件。 |
M222 | Error | UI 文件(.ui.qml)中不支持函数 | 有关支持的 JavaScript 函数列表,请参阅 支持的方法。 |
M223 | Error | UI 文件(.ui.qml)不支持 JavaScript 块 | 有关更多支持功能的信息,请参阅 UI 文件。 |
M224 | Error | UI 文件(.ui.qml)不支持行为类型 | 有关支持的 QML 类型的更多信息,请参阅UI 文件。 |
M225 | Error | UI 文件(.ui.qml)中仅支持根项中的状态 | 有关更多支持功能的信息,请参阅 UI 文件。 |
M226 | Error | UI 文件(.ui.qml)中不支持对根项的父项进行引用 | 有关更多支持功能的信息,请参阅 UI 文件。 |
M227 | Error | 在 UI 文件(.ui.qml)中不要混合翻译函数 | 尽管支持多个不同的翻译函数,例如 qsTr 和 qsTrId ,但您应该选择一个并在 UI 文件中一致地使用。有关更多信息,请参阅 Qt QML 方法。 |
M300 | Error | 未知组件 | |
M301 | Error | 无法解析 object 的原型 name | |
M302 | Error | 无法解析原型 name | |
M303 | Error | 原型循环,最后一个非重复组件是 name | |
M304 | Error | 无效属性类型 name | |
M305 | Warning | == 和 != 执行类型强制转换,使用 === 或 !== 避免此操作 | 请参阅 M126。 |
M306 | Warning | 以大写字母开头的函数调用应使用 new | 按照约定,以大写字母开头的函数是构造函数,应该只使用 new 使用。 |
M307 | Warning | 仅与以大写字母开头的函数一起使用 new | 另请参阅:不要使用 {a} 作为构造函数。 |
M308 | Warning | 不要将 Number 用作构造函数 | 另请参阅:不要使用 {a} 作为构造函数。 |
M309 | 提示 | 在二元运算符周围使用空格 | |
M310 | Warning | 意外空块,使用 ({}) 作为空对象字面量 | |
M311 | 提示 | 使用 type 而不是 var 或 variant 以提高性能 | |
M312 | Error | 缺少属性 number | |
M313 | Error | 预期对象值 | |
M314 | Error | 预期数组值 | |
M315 | Error | 预期 Value 值 | |
M316 | Error | 最大数值为 number | |
M317 | Error | 最小数值是 数字 | |
M318 | Error | 最大数值是不包含的 | |
M319 | Error | 最小数值是不包含的 | |
M320 | Error | 字符串值与所需模式不匹配 | |
M321 | Error | 最小字符串值长度是 数字 | |
M322 | Error | 最大字符串值长度是 数字 | |
M323 | Error | Number 预期在数组值中元素 | 参见: 数组字面量表示[]是首选. |
M324 | Error | 访问AST时达到最大递归限制,代码模型将不可靠且很可能无效 | |
M325 | Warning | 逻辑值不依赖于实际值 | 已删除:此警告不再从Qt Creator 12版本使用。 |
M326 | Error | 组件仅允许有一个子元素 | 更多信息,请参阅 组件. |
M327 | Warning | 组件需要子元素 | 更多信息,请参阅 组件. |
M400 | Warning | 重复导入 | 已经添加了重复的导入语句。有关更多信息,请参阅 导入语句. |
M401 | Error | 避免将根项作为别名引用 | 别名属性不能直接引用根组件。创建组件实例代替。 |
M402 | Warning | 避免在层次结构中引用根项 | 别名属性不能在层次结构中引用根组件。创建组件实例代替。 |
重置代码模型
在你添加新的QML模块后看到以下错误消息,请尝试构建项目然后重置代码模型
- 未找到QML模块。
- 未知组件(M300)。
要查看错误消息,将鼠标指针移至Qt Design Studio在代码编辑器下划线的代码或当在Qt Design Studio中打开QML文件时。
要重置代码模型,选择 工具 > QML/JS > 重置代码模型.
在特定Qt许可证下可用。
了解更多。