
UTS 内置对象 Console 完全指南uni-app / uni-app x 跨端日志、断言、计时与分组调试实践【免费下载链接】uni-appA cross-platform framework using Vue.js项目地址: https://gitcode.com/gh_mirrors/un/uni-appConsole 是 UTS 语言内置的全局对象用于向控制台输出调试信息其 API 设计与 Web 标准的console对象保持一致。本文以 UTS 官方文档 console.md 为核心系统讲解该对象全部 20 个静态方法log、debug、info、warn、error、assert、clear、count、countReset、dir、dirxml、group、groupCollapsed、groupEnd、table、time、timeEnd、timeLog、timeStamp、trace的签名、返回值与各端兼容性并结合仓库示例工程与 UTS 编译原理给出可直接复制到 uvue 页面或 UTS 插件中的实战用法。一、认识 UTS 的 Console 内置对象UTSuni type script是 uni-app 生态中的跨平台强类型语言可编译为 Web/小程序的 JavaScript、Android 的 Kotlin、iOS 的 Swift 以及鸿蒙的 ArkTS详见 UTS 介绍。在 UTS 中Console属于内置对象无需 import 即可直接使用其职责与浏览器控制台一致打印日志、断言检查、计数器、分组、表格化输出、计时与堆栈跟踪。仓库源码中 Console 是使用频率最高的调试设施之一。例如 hello-uvue 入口文件 中大量使用console.log(res)输出 mixin、全局属性等运行结果hello-uts 的语法用例页 使用console.error(testUtsSync, e)打印异常UTS 单元测试插件 Number.uts 用console.warn(num)输出数值断言结果。与 Web 一致UTS 中console.log等方法均按传参顺序把多个对象依次输出到控制台参数类型为(any | null)[]所有方法返回值均为void。二、基础日志输出debug / log / info / warn / error这是日常调试最常用的一组方法用于输出不同级别的日志信息。文档中四个方法签名完全一致error、info、log、warndebug在log基础上增加了一个带Help /的兼容性标注。统一参数说明| 名称 | 类型 | 必填 | 描述 | | :- | :- | :- | :- | | data | (any | null)[] | 是 | 要输出的对象列表。按传参的顺序把对象输出到控制台。 |统一返回值| 类型 | | :- | | void |各方法行为console.debug(...data)在控制台打印 debug 日志console.error(...data)在控制台打印 error 日志console.info(...data)在控制台打印 info 日志console.log(...data)在控制台打印 log 日志console.warn(...data)在控制台打印 warn 日志。兼容性debug/error/info三者在 uni-app x 与 uni-app 两套体系下的兼容矩阵完全一致| uni-app x 兼容性 | Web | Android | iOS | HarmonyOS | | :- | :- | :- | :- | :- | | 支持版本 | 4.0 | 3.90 | 4.11 | 4.61 || uni-app 兼容性UTS 插件 | Android UTS 插件 | iOS UTS 插件 | HarmonyOS UTS 插件 | | :- | :- | :- | :- | | 支持情况 | √ | √ | √ |log与warn的兼容矩阵则略窄目前仅覆盖 Web4.0、Android3.90、iOS4.11三个平台对应 uni-app 侧为 Android/iOS UTS 插件支持√ / √HarmonyOS 未列入以 console.md 原文为准。因此在需要覆盖鸿蒙端的插件中建议优先使用debug、info、error或assert等具备 HarmonyOS 4.61 支持的方法避免使用log/warn造成鸿蒙端输出缺失。实战示例可直接在 uvue 页面script setup languts中使用let res : string hello console console.log(res) // 普通日志 console.debug(res) // debug 级日志 console.info(res) // info 级日志 console.warn(res) // 警告日志 console.error(res) // 错误日志 // 多参数按顺序输出 console.log(userId:, 10001, status:, ok)三、断言与清理assert / clearconsole.assert(condition?, ...data)如果断言condition为false则将一个错误消息写入控制台如果断言为true则没有任何反应。| 名称 | 类型 | 必填 | | :- | :- | :- | | condition | boolean | 否 | | data | (any | null)[] | 是 |返回值void。| uni-app x 兼容性 | Web | Android | iOS | HarmonyOS | | :- | :- | :- | :- | :- | | 支持版本 | 4.0 | x | x | 4.61 || uni-app 兼容性 | Android UTS 插件 | iOS UTS 插件 | HarmonyOS UTS 插件 | | :- | :- | :- | :- | | 支持情况 | x | x | √ |从兼容矩阵可见assert是Web HarmonyOS两个端点支持的方法Android/iOS 原生侧暂不支持。这与 UTS 中 ts 语法在编译到不同平台时的约束有关可参考 uts 与 ts 的差异。let age : number 17 console.assert(age 18, 未满 18 岁校验失败) // age 18向控制台写入错误消息 console.assert(age 0, 年龄不可能为负) // 条件为 true无任何输出console.clear()console.clear()方法清空控制台但前提是该控制台允许清空。无参数返回值void。| uni-app x 兼容性 | Web | Android | iOS | HarmonyOS | | :- | :- | :- | :- | :- | | 支持版本 | 4.0 | x | x | 4.61 || uni-app 兼容性 | Android UTS 插件 | iOS UTS 插件 | HarmonyOS UTS 插件 | | :- | :- | :- | :- | | 支持情况 | x | x | √ |console.log(旧日志) console.clear() // 清空控制台要求控制台允许清空四、计数器count / countResetconsole.count(label?)console.count()方法会记录调用count()的次数同一个label对应的计数会持续累加并输出到控制台。| 名称 | 类型 | 必填 | | :- | :- | :- | | label | string | 否 |返回值void。兼容性同assertWeb 4.0、HarmonyOS 4.61Android/iOS 为 xuni-app 侧仅 HarmonyOS UTS 插件支持√。for (let i 0; i 3; i) { console.count(loop) // 依次输出 loop: 1、loop: 2、loop: 3 } console.count() // 默认 label输出 default: 1console.countReset(label?)重置计数器。此函数有一个可选参数label不传时重置默认计数。| 名称 | 类型 | 必填 | | :- | :- | :- | | label | string | 否 |返回值void。兼容性同countWeb 4.0、HarmonyOS 4.61uni-app 侧 HarmonyOS UTS 插件 √。console.count(retry) // retry: 1 console.count(retry) // retry: 2 console.countReset(retry)// 重置 retry 计数器 console.count(retry) // retry: 1五、对象检视dir / dirxmlconsole.dir(item?, options?)console.dir()方法可以显示指定对象的属性列表并以交互式的形式展现便于展开查看嵌套结构。| 名称 | 类型 | 必填 | | :- | :- | :- | | item | any | null | 否 | | options | any | null | 否 |返回值void。兼容性Web 4.0、HarmonyOS 4.61Android/iOS xuni-app 侧 HarmonyOS UTS 插件 √。console.dirxml(...data)显示一个明确的 XML/HTML 元素的包括所有后代元素的交互树。非标准该特性是非标准的请尽量不要在生产环境中使用它| 名称 | 类型 | 必填 | | :- | :- | :- | | data | (any | null)[] | 是 |返回值void。兼容性Web 4.0、HarmonyOS 4.61Android/iOS xuni-app 侧 HarmonyOS UTS 插件 √。const user : UTSJSONObject { name: zhangsan, age: 12, address: { city: beijing } } console.dir(user) // 以可展开的属性列表形式展示对象六、日志分组group / groupCollapsed / groupEndconsole.group(...data)方法在控制台上创建一个新的分组。随后输出到控制台上的内容都会被添加一个缩进表示该内容属于当前分组直到调用console.groupEnd()之后当前分组结束。console.groupCollapsed(...data)同样创建新分组区别在于默认折叠console.groupEnd()在控制台中退出一格缩进结束分组。参数group/groupCollapsed的data为(any | null)[]必填groupEnd()无参数。三者返回值均为void兼容性均为 Web 4.0、HarmonyOS 4.61Android/iOS xuni-app 侧 HarmonyOS UTS 插件 √。console.group(订单处理) console.log(开始下单) console.groupCollapsed(子步骤) console.log(校验库存) console.log(扣减库存) console.groupEnd() // 结束子分组退出一格缩进 console.log(下单完成) console.groupEnd() // 结束外层分组七、表格化输出tableconsole.table(tabularData?, properties?)将数据以表格的形式显示适合打印对象数组等结构化数据。| 名称 | 类型 | 必填 | | :- | :- | :- | | tabularData | any | null | 否 | | properties | string[] | 否 |返回值void。兼容性Web 4.0、HarmonyOS 4.61Android/iOS xuni-app 侧 HarmonyOS UTS 插件 √。const list : ArrayUTSJSONObject [ { name: apple, price: 5.5 }, { name: banana, price: 3.2 } ] console.table(list) // 以表格显示两行数据 console.table(list, [name])// 仅显示 name 列八、计时器time / timeEnd / timeLog / timeStampconsole.time(label?)你可以启动一个计时器来跟踪某一个操作的占用时长。每一个计时器必须拥有唯一的名字页面中最多能同时运行 10,000 个计时器。| 名称 | 类型 | 必填 | | :- | :- | :- | | label | string | 否 |console.timeEnd(label?)停止一个通过console.time()启动的计时器并输出该计时器从启动到结束的耗时。非标准该特性是非标准的请尽量不要在生产环境中使用它| 名称 | 类型 | 必填 | | :- | :- | :- | | label | string | 否 |console.timeLog(label?, ...data)在控制台输出计时器的当前值该计时器必须已经通过console.time()启动可附带额外的data一起输出。| 名称 | 类型 | 必填 | | :- | :- | :- | | label | string | 否 | | data | (any | null)[] | 是 |console.timeStamp(label?)非标准该特性是非标准的请尽量不要在生产环境中使用它| 名称 | 类型 | 必填 | | :- | :- | :- | | label | string | 否 |四个方法返回值均为void兼容性均为 Web 4.0、HarmonyOS 4.61Android/iOS xuni-app 侧 HarmonyOS UTS 插件 √。console.time(render) // 模拟耗时操作 let sum : number 0 for (let i 0; i 10000; i) { sum i } console.timeLog(render, 中间进度) // 输出当前计时值 console.timeEnd(render) // 停止计时并输出总耗时 console.timeStamp(用户点击事件) // 在时间线中打一个标记非标准九、堆栈跟踪traceconsole.trace(...data)向控制台输出一个堆栈跟踪用于排查这段代码是从哪里被调用的。| 名称 | 类型 | 必填 | | :- | :- | :- | | data | (any | null)[] | 是 |返回值void。兼容性Web 4.0、HarmonyOS 4.61Android/iOS xuni-app 侧 HarmonyOS UTS 插件 √。function fnA() : void { fnB() } function fnB() : void { console.trace(trace from fnB) // 输出当前调用栈 } fnA()十、兼容性全景与选型建议综合 console.md 的兼容性矩阵可将全部方法归纳为两组| 方法 | uni-app x 支持Web / Android / iOS / HarmonyOS | uni-app UTS 插件支持 | | :- | :- | :- | | debug、error、info | 4.0 / 3.90 / 4.11 / 4.61 | Android √、iOS √、HarmonyOS √ | | log、warn | 4.0 / 3.90 / 4.11HarmonyOS 未列入 | Android √、iOS √ | | assert、clear、count、countReset、dir、dirxml、group、groupCollapsed、groupEnd、table、time、timeEnd、timeLog、timeStamp、trace | 4.0 / x / x / 4.61 | HarmonyOS √Android/iOS 为 x |选型建议全端含鸿蒙日志优先debug、info、errorlog/warn目前未覆盖 HarmonyOS跨端插件需谨慎使用原生端Android/iOS插件基础日志请使用debug/error/info/log/warn其余高级方法断言、计时、分组等在 Android/iOS 原生侧暂为 x可改用条件编译或平台原生日志能力实现Web 鸿蒙assert、count、table、time等高级调试方法均有支持是这两端调试利器。十一、仓库中的真实用法参考hello-uvue 工程入口在 mixin 初始化、全局属性回调等场景中高频使用console.log(res)输出运行结果hello-uts 语法用例页在 UTS 类实例化、Setter 调用等测试用例中用console.error(testUtsSync, e)捕获并输出异常信息UTS 单元测试插件 Number.uts用console.warn(num)输出测试数值验证 UTS 数值类型的字面量推导行为UTS 语言介绍文档中大量console.log示例演示变量、类型判断Array.isArray、instanceof与安全调用?.的调试输出方式Timers 内置对象文档展示在setTimeout/setInterval回调中配合console.log输出定时器 ID 的完整页面级示例可作为 uvue 页面中调试异步逻辑的参考模板。十二、参见完整 API 定义Console 内置对象文档相关 Bug 反馈入口文档末参见一节链接至 DCloud 官方问题跟踪系统uts.buildInObject.Console分类语言背景UTS 语言介绍、uts 与 ts 的差异其他内置对象内置对象 API 文档目录含 Array、Date、Map、Set、JSON、Promise 等 27 个对象【免费下载链接】uni-appA cross-platform framework using Vue.js项目地址: https://gitcode.com/gh_mirrors/un/uni-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考