错误码参考
qingkuai 的编译器和运行时可能会抛出带有错误码的提示信息,以帮助开发者快速定位问题。本节列出所有内置错误码及其含义,便于查阅和排查。错误码按照功能类型进行分类,编号规则如下:
1xxx:编译错误,表示代码在编译阶段无法通过,通常需要开发者修正语法或逻辑问题;
9xxx:编译警告,提示潜在问题或不推荐的用法,但不会阻止代码编译;
2xxx:运行时错误,表示代码在运行过程中出现了致命问题,可能会导致程序中断;
8xxx:运行时警告,表示在运行过程中出现了非阻断性的异常行为,建议关注;
通过错误码快速查找具体信息,可提升排错效率并更好地理解框架的行为。
编译错误
状态码 | 描述 |
---|---|
1001 | 空插值块 |
1002 | 意料之外的字符 |
1003 | 未闭合的插值块 |
1004 | 非法的标识符格式 |
1005 | 未闭合的属性值(如 class="box ) |
1006 | 未闭合的 HTML 标签(如 <div 或 </div ) |
1007 | 以 HTML 结束标签开始(如在 </div> 之前不存在 <div> 与之匹配) |
1008 | 无名称的插值属性(如仅用 ! 、@ 、# 或 & 字符作为属性名) |
1009 | 嵌入语言标签超出限制(组件文件中最多存在一个嵌入脚本语言标签) |
1010 | 标签不能作为自闭合标签使用(如 <div /> ) |
1011 | 使用 #key 指令的标签未添加 #for 指令 |
1012 | #slot 指令未在组件一级子标签上使用 |
1013 | 组件的多个一级子标签中具有重复的 slot 属性值 |
1014 | 为普通元素标签传入了不被接受的引用属性 |
1015 | 指令要求显式赋值,但未指定值(如 <Test #await /> ) |
1016 | 插值属性的值部分未使用花括号包裹(如 !attr="xxx" ) |
1017 | 普通属性值部分未使用引号包裹(如 class=box ) |
1018 | 在同一标签上同时使用了不能共存的指令(如共用 #if 和 #else 等) |
1019 | 动态 name 属性在 slot 标签上不被允许 |
1020 | 在嵌入脚本块的顶级作用域中重复注册已经存在的标识符(如 rea 、props 等) |
1021 | 重复的属性(如在同一个标签上同时使用 !id 和 id 属性等) |
1022 | 缺少开始指令(如使用 #elif 指令的标签的前一个兄弟标签未使用 #if 指令等) |
1023 | 在嵌入脚本块的顶级作用域之外使用内建的响应性声明方法 |
1024 | 具有动态 type 属性的input 或具有动态 multiple 属性的 select 标签仅可接受 &dom 作为引用属性 |
1025 | 在非变量声明语句中使用内建响应性声明方法 |
1026 | 未知指令(参考:编译指令) |
1027 | 标识符格式被禁用(如 __c__ 、__s1__ 等) |
1028 | 解构响应性声明时未位内建方法传递参数(undefined 不能被解构) |
1029 | 非法的引用属性值(常量或非可取值目标,参考:引用属性的合法值) |
1030 | 普通标签上的引用属性不可被接受(参考:引用属性) |
1031 | 非法的 slot 属性(如 !slot 或 &slot ) |
1032 | 多个 slot 标签具有相同的 name 属性 |
1033 | 模板上下文中的标识符(多由指令产生)不能作为引用属性的目标(因为它们是常量) |
1034 | 没有匹配的结束标签(如不存在对应的 </div> 与某个 <div> 匹配) |
1035 | 嵌入语言标签被作为子元素使用 |
1036 | 非法的 #for 指令值(参考:列表渲染) |
1037 | 将衍生响应性状态便捷声明与非 der 内建辅助方法混用(参考:衍生响应性状态) |
1038 | 使用内建监视器注册辅助方法时缺少必要的参数(最少两个参数) |
1039 | slot 标签不接受任何事件 |
1040 | 嵌入脚本块中不能使用 export 相关语法 |
1041 | 产生上下文标识符的指令值格式非法(如 #then 、#catch 等指令值必须为合法的标识符或对象/数组表字面量) |
1042 | 使用 #html 指令的标签具有子元素(它们只能接受一个子文本节点) |
1043 | 在不被允许的标签上使用 #html 指令(如自闭合标签、组件或 slot 标签等) |
1044 | 在不被允许的标签上使用 &dom 引用属性(如组件或 slot 标签等) |
1045 | 嵌入脚本块中不支持顶层 await 语法 |
编译警告
状态码 | 描述 |
---|---|
9001 | 使用内建方法时传入了多余的参数,它们会被忽略 |
9002 | 嵌入脚本块顶级作用域中的 $args 标识符在内联事件中会被覆盖 |
9003 | 将衍生响应性状态便捷声明与 der 内建方法混用 |
9004 | 无效的事件标志,它们会被忽略 |
9005 | 组件中的事件不接受任何标志,它们会被忽略 |
9006 | 为非 input 事件添加 compose 标志,它会被忽略 |
9007 | 在非键盘相关事件上使用键盘相关标志,它们会被忽略 |
9008 | 重复的事件标志 |
9009 | 多余的指令值(如 #else={ok} ),该指令值会被省略 |
9010 | slot 标签的 name 属性值为空,默认应用 default |
9011 | 组件一级子元素的 slot 属性为空,默认引用 default |
运行时错误
状态码 | 描述 |
---|---|
2001 | 为响应性常量状态赋值 |
2002 | #key 指令值存在重复项 |
2003 | 组件类不能被手动实例化 |
2004 | 错误的响应性深度(小于 0) |
2005 | #for 指令值不可遍历(参考列表渲染) |
2006 | #await 指令值非 Promise (参考:异步处理指令) |
2007 | mountApp 或 #target 指令值给出的挂载目标选择器找不到对应的元素 |
运行时警告
状态码 | 描述 |
---|---|
8001 | 为 props 内建对象的属性赋值(无效操作,为 getter 赋值会失败) |
8002 | 为衍生响应性状态赋值(无效操作,为 getter 赋值会失败) |
8003 | 注册监视器的目标或注册副作用的方法中不存在响应性状态 |
8004 | 衍生响应性状态不依赖任何其他响应性状态(可改为常规声明) |
8005 | #target 指令值非字符串(selector)且不是有效的 HTML 元素 |