HarmonyOS 鸿蒙Next怎么关闭严格模式,开发人员能不能管一下这个功能
HarmonyOS 鸿蒙Next怎么关闭严格模式,开发人员能不能管一下这个功能
有一段代码如下,是不是感觉AI都写不出来这样无脑的代码?不是我想这样写,是因为deveco 的什么判断,估计是强制开启了严格模式,会进行类型检查。
如果不这样写,就会报错如下:
但是实际上传参时,已经传的是所有参数已定义,只是因为接口定义中,成员是可选项。模拟器运行调试截图如下:
就是因为这种情况,其实许多可选属性都是已经定义了的,只是因为使用的接口中是可选的类型成员,是自动number|undefined。导致现在代码中,用来判断可选属性是否存在的if语句,都快赶上正常功能代码的1/5了,这他妈1/5开发时间都是无效作用。那么如果接口中新增成员,那不是还要在所有用if 判断涉及到这个接口得地方去增加条件?哪个人想出来得这种东西。要不然就是使用重新赋值,let xx:number = k.shuxing as number;不满篇if判断了,整个满篇as 语句????????当数据类型是number值为0时,简单用一个if(对象)还判断不出来,还得用if(对象 || 对象 == 0),如果一个接口中多几个number类型成员,那不是if(老长的条件语句,可能要换个10行),这样很舒服?特别是UI中,好多UI组件属性值都是number类型。
其实deveco3.0并没有这种严格的类型判断,用起来特别舒服,虽然调试起来,可能会因为属性未定义报错,但是也比这满篇都是if else判断可选类型好。并且,哪个开发者会在自己的程序里面写一大堆undefined属性,一般都是直接在构造时就赋值了,或者写一点就测一点,根本不会存在因为属性未定义,在调试时找不到问题的情况。即使要用,也会谨慎使用,例如函数返回值时,可能用得比较多。麻烦开发者用的东西,按照开发者的来,整一个简单算法判断,有用?要做就做好,做了后,自己用一下,自己都不用,用起来不舒服,拿给其他人用,不抵触才怪,又不是像鸿蒙系统这种不可或缺的东西。开发者不是AI,不需要什么都限制得死死的,不然就申明ArkTS是给AI专用的语言,不需要开发者参与,我绝对不会再用。
本来打字就慢,还要打一大堆没必要的if else,实在不行,就不允许用undefined的类型,那估计这内存管理起来得成什么样。
最后其实是想请教下大佬,怎么把这个类型判断模式给他取消掉,是真的不需要这个功能,就是ArkTScheck。感觉鸿蒙的官方人员又换了一批了,真没以前感觉给力(那种开拓的感觉,变成随波逐流)。
这个问题有专门的解决方案的.
第一种: 可选链
wx.wuxinJin?.XXX // "wx.wuxinJin" 可能为空. 可以编译通过. 实际如果为空代码不执行.
第二种: 非空断言(强制告诉编辑器, 这个一定不为空, 编译通过)
wx.wuxinJin!.XXX // "wx.wuxinJin" 可能为空. 可以编译通过. 实际如果为空代码不执行.
详细参考: 空安全
谢谢大佬指点,解决了。经过测试,wx.wuxinJin?.XXX 、wx.wuxinJin!.XXX这两种方式还是会报类型不对的问题。但是文档中的??符号基本满足需求(wx.wuxinJin.XXX)??‘xx’。还是学得不够细,之前看文档时,都没注意有这个东西
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
作为IT专家,对于HarmonyOS 鸿蒙Next如何关闭严格模式的问题,以下提供具体操作步骤:
- 进入设置菜单:解锁手机后,进入“设置”功能。
- 进入开发者选项:在“设置”中,选择“系统和更新”,点击“开发人员选项”。
- 关闭严格模式:在“开发人员选项”中,下拉找到“严格模式”,点击其后方的划块,即可取消启用。
请注意,严格模式是为了帮助开发者检测应用中可能存在的问题,一般用户可能无需频繁操作此功能。如非必要,建议保持其关闭状态以避免潜在的系统干扰。
此外,长期开启开发者模式可能因操作不当导致系统故障,所以在完成相关设置或开发任务后,建议关闭开发者模式。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。