错误码参考

qingkuai 的编译器和运行时可能会抛出带有错误码的提示信息,以帮助开发者快速定位问题。本节列出所有内置错误码及其含义,便于查阅和排查。错误码按照功能类型进行分类,编号规则如下:

通过错误码快速查找具体信息,可提升排错效率并更好地理解框架的行为。


编译错误

状态码 描述
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 在嵌入脚本块的顶级作用域中重复注册已经存在的标识符(如 reaprops 等)
1021 重复的属性(如在同一个标签上同时使用 !idid 属性等)
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 元素

在github上编辑此页面