• Lv0
    粉丝0

积分12 / 贡献0

提问2答案被采纳0文章0

【北向开发】【ArkTS语法求助】API10版本中,如何封装单例模式工具类?

程天骄 显示全部楼层 发表于 2024-2-4 00:10:28

起因是项目中有很多地方需要使用KVStore,但是获取KVStore实例需要较为繁琐的步骤,所以想简化这个流程。

基于以上需求,我构建了一个单例工具类,在EntryAbility构造的时候,初始化工具类中的KVStore实例,然后在需要的时候获取KVStore实例,存取数据。代码如下图所示:

微信图片_20240203235733.png

编译时IDE给出报错:“ Type 'undefined' is not assignable to type 'SingleKVStore'.”

如果将左侧21行代码中的" = undefined"删掉,则编译时报错如下图

// private generalStore: distributedKVStore.SingleKVStore = undefined;
private generalStore: distributedKVStore.SingleKVStore;

微信图片_20240204000141.png

请教论坛里的各位大佬,是我的语法有问题,还是我的实现思路错了?应该如何满足我的需求呢?

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论3

hyacinth养花人

沙发 发表于 2024-2-4 11:53:50
试下
let kvStore: distributedKVStore.SingleKVStore | undefined;
或者
let kvStore: distributedKVStore.SingleKVStore | undefined = undefined;

程天骄

发表于 2024-2-4 13:12  IP属地: 山东省潍坊市

回复 hyacinth养花人: 感谢回答,按您说的试过了,还是无法编译通过,截图如下。

【1 条回复】

程天骄

板凳 发表于 2024-2-4 14:13:47
此贴终结,感谢hyacinth养花人大佬的解答。下面贴图附上两种抽离公共方法实现工具类的方式,仅供参考。如果有其他更优雅的方式,欢迎回复讨论。

方案A:通过引用公共代码块的形式实现
方案A.png

方案B:通过声明单例类的形式实现(存在两个注意点,已在图中使用红字+箭头标注)
方案B.png

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部