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 | 错误 | 枚举值无效 | |
M2 | 错误 | 枚举值必须是字符串或数字 | |
M3 | 错误 | 期望数字值 | |
M4 | 错误 | 期望布尔值 | |
M5 | 错误 | 期望字符串值 | |
M6 | 错误 | 无效的URL | |
M7 | 警告 | 文件或目录不存在 | |
M8 | 错误 | 无效的颜色 | |
M9 | 错误 | 期望锚定行 | |
M10 | 错误 | 重复属性绑定 | 另请参阅:重复键'{a}'。 |
M11 | 错误 | 期望标识符 | 另请参阅:期望一个标识符而不是'{a}'(保留词)。 |
M14 | 错误 | 无效的id | 另请参阅:期望一个标识符而不是'{a}'(保留词)。 |
M15 | 错误 | 重复的id | 文件中的id必须唯一。另请参阅:重复键'{a}'。 |
M16 | 错误 | 无效的属性名 name | |
M17 | 错误 | Name 不是一个成员 | |
M18 | 错误 | Field 不是 object 的成员 | |
M19 | 警告 | 条件赋值 | 这可能是一个输入错误。如果是故意的,请在赋值周围加括号。 |
M20 | 警告 | 未结束的空白情况块 | 情况块应该是空的或者以 break 、return 或 continue 等控制流语句结束。或者,您可以通过在末尾添加 // fall through 注释来表示有意忘记 |
M23 | 警告 | 不要使用 eval | 参见: eval 是邪恶的。 |
M28 | 警告 | 不可达 | 表明下划线的声明永远不会被执行。 |
M29 | 警告 | 不要使用 with | 参见: 意外的 'with'。 |
M30 | 警告 | 不要使用逗号表达式 | |
M31 | 警告 | 不必要的消息压制 | |
M103 | 警告 | Name 已经是一个形式参数 | |
M104 | 警告 | Name 已经是一个函数 | |
M105 | 警告 | 在声明之前使用了 Var name | |
M106 | 警告 | Name 已经是一个 var | |
M107 | 警告 | Name 被声明超过一次 | 在函数中声明的变量在函数的任何地方都始终是可见的,即使它们是在嵌套块或 for 语句条件中声明的。重新声明变量没有效果。 |
M108 | 警告 | 在声明之前使用了 name 函数 | 参见: {a} 在定义之前被使用了。 |
M109 | 警告 | 不要使用 Boolean 作为构造函数 | 参见: 不要使用 {a} 作为构造函数。 |
M110 | 警告 | 不要使用 String 作为构造函数 | 参见: 不要使用 {a} 作为构造函数。 |
M111 | 警告 | 不要使用 Object 作为构造函数 | 参见: 不要使用 {a} 作为构造函数。 |
M112 | 警告 | 不要使用 Array 作为构造函数 | 参见: 不要使用 {a} 作为构造函数。 |
M113 | 警告 | 不要使用 Function 作为构造函数 | 参见: 不要使用 {a} 作为构造函数。 |
M114 | 提示 | function 关键字和开括号之间应该有一个空格 | 参见: {a} 和 {b} 之间期望恰好有一个空格。 |
M115 | 警告 | 不要使用独立的块 | 块不会影响变量作用域。因此,与 if 、while 等不相关的块没有任何效果,应避免使用。 |
M116 | 警告 | 不要使用 void 表达式 | |
M117 | 警告 | 混淆的加号 | 参见: 混淆的加号。 |
M119 | 警告 | 混淆的减号 | 参见: 混淆的减号。 |
M121 | 提示 | 在一行中声明所有函数变量 | |
M123 | 提示 | 不必要的括号 | |
M126 | 警告 | == 和 != 可能执行类型强制转换,使用 === 或 !== 以避免它 | 非严格的相等比较允许将其参数转换为共同类型。这可能导致意外的结果,例如 ' \t\r\n' == 0 为真。请使用严格的相等运算符 === 和 !== ,并明确指出您需要的转换。 |
M127 | 警告 | 表达式声明应该是赋值、调用或 delete 表达式 | |
M128 | 错误 | 状态不能具有指定的子项 | |
M129 | 错误 | 类型不能递归实例化 | |
M201 | 提示 | 在函数的开始处放置 var 声明 | 参见:将 'var' 声明移至函数顶部。 |
M202 | 提示 | 每行仅使用一个语句 | |
M220 | 错误 | 此类型(类型名称)不支持作为 UI 文件(.ui.qml)的根元素 | 有关支持 QML 类型的更多信息,请参阅 UI 文件。 |
M221 | 错误 | 在 UI 文件(.ui.qml)中不支持此类型(类型名称) | 有关支持 QML 类型的更多信息,请参阅 UI 文件。 |
M222 | 错误 | 在 UI 文件(.ui.qml)中不支持函数 | 有关支持 JavaScript 函数的列表,请参阅 支持的方法。 |
M223 | 错误 | 在 UI 文件(.ui.qml)中不支持 JavaScript 块 | 有关支持功能的更多信息,请参阅 UI 文件。 |
M224 | 错误 | 在 UI 文件(.ui.qml)中不支持行为类型 | 有关支持 QML 类型的更多信息,请参阅 UI 文件。 |
M225 | 错误 | 状态仅在 UI 文件(.ui.qml)的根项目中被支持 | 有关支持功能的更多信息,请参阅 UI 文件。 |
M226 | 错误 | 在 UI 文件(.ui.qml)中不支持引用根项目的父级 | 有关支持功能的更多信息,请参阅 UI 文件。 |
M227 | 错误 | 不要在 UI 文件(.ui.qml)中混合使用翻译函数 | 尽管支持多个不同的翻译函数,例如 qsTr 和 qsTrId ,您应该选择其中一个并在此 UI 文件中保持一致使用。有关更多信息,请参阅 Qt QML 方法。 |
M300 | 错误 | 未知组件 | |
M301 | 错误 | 无法解析对象 name 的原型 name | |
M302 | 错误 | 无法解析原型 name | |
M303 | 错误 | 原型循环,最后一个非重复组件是 name | |
M304 | 错误 | 无效属性类型 name | |
M305 | 警告 | 使用 == 或 != 会执行类型强制转换,请使用 === 或 !== 以避免它 | 请参见 M126。 |
M306 | 警告 | 大写字母开头的函数调用应使用 new | 按照惯例,大写字母开头的函数是构造函数,应仅使用 new 。 |
M307 | 警告 | 仅使用 new 与大写字母开头的函数 | 参见: 不要使用 {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 元素 | 参见:数组的字面量表示法 [] 是首选。 |
M324 | 错误 | 访问 AST 时遇到最大递归限制,代码模型将不可靠且可能无效 | |
M325 | 警告 | 逻辑值不依赖于实际值 | 已移除:自 Qt Creator 版本 12 起不再使用此警告 |
M326 | 错误 | 组件只能有一个子元素 | 有关更多信息,请参阅组件。 |
M327 | 警告 | 组件需要一个子元素 | 有关更多信息,请参阅组件。 |
M400 | 警告 | 重复导入 | 已将导入语句添加了两次。有关更多信息,请参阅导入语句。 |
M401 | 错误 | 不要将根项目作为别名引用 | 别名属性不能直接引用根组件。创建组件的实例代替。 |
M402 | 警告 | 避免在层次结构中引用根项目 | 别名属性不能在层次结构中引用根组件。创建组件的实例代替。 |
重置代码模型
如果您在添加新的 QML 模块后看到以下错误信息,请尝试构建项目,然后重置代码模型
- 未找到 QML 模块。
- 未知组件(M300)。
要查看错误信息,将鼠标指针移至代码编辑器中 Qt Creator 下划的代码或打开 QML 文件时 Qt Design Studio 下划的代码。
要重置代码模型,选择工具 > QML/JS > 重置代码模型。
另请参阅检查代码语法,使用 QML 模块与插件,以及分析代码。
©2024 The Qt Company Ltd. 包含在本内的文档贡献是各个所有者的版权。本提供的文档是根据自由软件基金会发布的GNU 自由文档许可证版本 1.3条款许可的。