harmony-utils之TypeUtil,类型检查工具类

简介: harmony-utils 是一款专为 HarmonyOS 开发的高效工具库,提供丰富的实用功能,帮助开发者快速构建鸿蒙应用。TypeUtil 是其类型检查工具类,支持 Boolean、Number、String、Object、Array、Map、Set、Date、Promise 等多种类型的判断,适用于各类数据校验场景。

harmony-utils之TypeUtil,类型检查工具类

harmony-utils 简介与说明


harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
picker_utils 是harmony-utils拆分出来的一个子库,包含PickerUtil、PhotoHelper、ScanUtil。

下载安装
ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils

  //全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    AppUtil.init(this.context);
  }

API方法与使用


isBoolean 判断是否是Boolean类型
let bl1 = TypeUtil.isBoolean(true);
let bl2 = TypeUtil.isBoolean("true");
isNumber 判断是否是Number类型
let num1 = TypeUtil.isNumber(188);
let num2 = TypeUtil.isNumber("188");
isString 判断是否是String类型
let str1 = TypeUtil.isString("哈哈");
let str2 = TypeUtil.isString(null);
isObject 判断是否是Object类型
let obj1 = TypeUtil.isObject(new User());
let obj2 = TypeUtil.isObject("Object");
isArray 判断是否是数组类型
let array: string[] = ["黑龙江省", "哈尔滨市", "道里区", "砂山", "砀山", "高薪区"];
let isArray1 = TypeUtil.isArray(array);
let isArray2 = TypeUtil.isArray([]);
let isArray3 = TypeUtil.isArray("哈哈哈");
isResource 判断是否是Resource类型
let bl1 = TypeUtil.isResource($r('app.string.app_name'));
let bl2 = TypeUtil.isResource("哈哈哈");
let bl3 = TypeUtil.isResource(new User());
let bl4 = TypeUtil.isResource(null);
isResourceStr 判断是否是ResourceStr类型
let bl5 = TypeUtil.isResourceStr($r('app.string.app_name'));
let bl6 = TypeUtil.isResourceStr("哈哈哈");
let bl7 = TypeUtil.isResourceStr(undefined);
isFunction 判断是否是函数类型
let isFunction = TypeUtil.isFunction(this.aboutToAppear);
isMap 检查是否为Map类型
let map = new Map<string, object>();
let isMap = TypeUtil.isMap(map);
isWeakMap 检查是否为WeakMap类型
let weakMap: WeakMap<object, number> = new WeakMap();
let isWeakMap = TypeUtil.isWeakMap(weakMap);
isSet 检查是否为Set类型
let set: Set<number> = new Set();
let isSet = TypeUtil.isSet(set);
isWeakSet 检查是否为WeakSet类型
let weakSet = new WeakSet();
let isWeakSet = TypeUtil.isWeakSet(weakSet);
isDate 检查是否为Date类型
let isDate = TypeUtil.isDate(new Date());
isArrayBuffer 检查是否为ArrayBuffer类型
let isArrayBuffer = TypeUtil.isArrayBuffer(new ArrayBuffer(0));
isSharedArrayBuffer 检查是否为SharedArrayBuffer类型
let isSharedArrayBuffer = TypeUtil.isSharedArrayBuffer(new SharedArrayBuffer(0));
isAnyArrayBuffer 检查是否为ArrayBuffer或SharedArrayBuffer类型
let isAnyArrayBuffer = TypeUtil.isAnyArrayBuffer(new ArrayBuffer(0));
isUint8Array 检查是否为Uint8Array数组类型
let isUint8Array = TypeUtil.isUint8Array(new Uint8Array([]));
isUint16Array 检查是否为Uint16Array数组类型
let isUint16Array = TypeUtil.isUint16Array(new Uint16Array([]));
isUint32Array 检查是否为Uint32Array数组类型
let isUint32Array = TypeUtil.isUint32Array(new Uint32Array([]));
isInt8Array 检查是否为Int8Array数组类型
let isInt8Array = TypeUtil.isInt8Array(new Int8Array([]));
isInt16Array 检查是否为Int16Array数组类型
let isInt16Array = TypeUtil.isInt16Array(new Int16Array([]));
isInt32Array 检查是否为Int32Array数组类型
let isInt32Array = TypeUtil.isInt32Array(new Int32Array([]));
isTypedArray 检查是否为TypedArray类型
let isTypedArray = TypeUtil.isTypedArray(new Float64Array([]));
isAsyncFunction 检查是否为异步函数类型
let isAsyncFunction = TypeUtil.isAsyncFunction(this.aboutToAppear);
isPromise 检查是否为Promise类型
let isPromise = TypeUtil.isPromise(Promise.resolve(1));
isProxy 检查是否为Proxy类型
let user = new User();
const proxy = new Proxy(user, user as ProxyHandler<User>);
let isProxy = TypeUtil.isProxy(proxy);
isRegExp 检查是否为RegExp类型
let isRegExp = TypeUtil.isRegExp(new RegExp('abc'));
isDataView 检查是否为DataView类型
let dataView = new DataView(new ArrayBuffer(20));
let isDataView = TypeUtil.isDataView(dataView);
isExternal 检查是否为native External类型
let isExternal = TypeUtil.isNativeError("");
isNativeError 检查是否为Error类型
let isNativeError1 = TypeUtil.isNativeError(new TypeError());
let isNativeError2 = TypeUtil.isNativeError(new URIError());
let isNativeError3 = TypeUtil.isNativeError("");

创作不易,请给童长老点赞👍


https://github.com/787107497/harmony-utils
https://gitee.com/tongyuyan/harmony-utils
OpenHarmony三方库

目录
相关文章
|
5月前
|
人工智能 开发者
阿里云Qwen3.7模型优惠:Qwen3.7-Max与Plus错峰折扣2折起和Qwen3.7-Max 限时优惠介绍
阿里云推出Qwen3.7系列模型双轨优惠:一是错峰折扣,每晚22:00至次日08:00,Qwen3.7-Max低至2折、Qwen3.7-Plus低至4折,最高省80%,覆盖Qoder全系产品,自动生效无需报名;二是Qwen3.7-Max限时半价,6月1日至22日所有用户每日享200次免费调用,超出后仍享5折。两项活动均自动生效,模型质量不变,错峰Credits计入月度额度。
|
SQL 消息中间件 Kafka
流数据湖平台Apache Paimon(二)集成 Flink 引擎
流数据湖平台Apache Paimon(二)集成 Flink 引擎
2740 0
|
7月前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
10327 23
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
安全 开发工具
HarmonyOS NEXT实战:通过微信分享内容
本教程介绍如何在HarmonyOS Next项目中接入微信SDK,实现内容分享功能。涵盖环境搭建、代码集成及分享图文、网页等内容的具体实现方式,适用于教育类应用快速集成社交分享能力。
575 0
|
JSON API 数据格式
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(一)
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(一)
557 1
|
安全 Java 编译器
JD-GUI,java反编译工具及原理: JavaDecompiler一个Java反编译器
Java Decompiler (JD-GUI) 是一款由 Pavel Kouznetsov 开发的图形化 Java 反编译工具,支持 Windows、Linux 和 Mac Os。它能将 `.class` 文件反编译为 Java 源代码,支持多文件标签浏览、高亮显示,并兼容 Java 5 及以上版本。JD-GUI 支持对整个 Jar 文件进行反编译,可跳转源码,适用于多种 JDK 和编译器。其原理基于将字节码转换为抽象语法树 (AST),再通过反编译生成代码。尽管程序可能带来安全风险,但可通过代码混淆降低可读性。最新版修复了多项识别错误并优化了内存管理。
11817 1
|
开发工具 开发者
【HarmonyOS 5】如何开启DevEco Studio热更新调试应用模式
【HarmonyOS 5】如何开启DevEco Studio热更新调试应用模式
836 0
|
存储 开发工具 数据库
gitea docker 快捷安装部署
通过Docker快速部署Gitea,可以大大简化安装过程,确保系统环境的稳定性与一致性。使用Docker Compose管理容器,使得Gitea的维护和升级更加方便。通过定期备份数据,确保在需要时可以快速恢复。这个部署方案适合各种规模的开发团队,特别是希望通过自托管方式管理代码库的用户。
1773 24
|
人工智能 搜索推荐 前端开发
MiniPerplx:基于 Grok 2.0 的开源 AI 搜索引擎,支持网页、学术、视频搜索
MiniPerplx 是一款基于 Grok 2.0 模型的开源 AI 搜索引擎,支持网页、学术论文、YouTube 视频等多种内容搜索,提供代码解释、天气预报等功能。
845 17
MiniPerplx:基于 Grok 2.0 的开源 AI 搜索引擎,支持网页、学术、视频搜索
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
2006 1

热门文章

最新文章