【找bug】ArkUI ETS @Extend使用异常反馈 原创 精华

发布于 2022-1-30 15:28
浏览
2收藏

【找bug】ArkUI ETS @Extend使用异常反馈

一、bug背景

今天进行ETS的语法学习,在做装饰器的@Extend 的试验时,先复制了官网给的例子代码来尝试下效果。
官方链接:++https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ts-component-based-extend-0000001134698822++

【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区
效果是这样的:

【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区

于是,我个人在其上方再写一个自己的@Extend方法,试验下:
【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区

但结果却是preview报异常 …
【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区
【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区

看着异常提示,我横看竖看,都没有发现代码啥问题,代码几乎一模一样,无非换了命名,改了字体颜色,删除斜体样式。
但想想这么简单的代码竟然报异常,而且这异常我还找不出任何问题!于是放不下面子的我,非得一点点来给他找到问题原因不可。

二、问题定位

1、首先为了更好确定问题原因,先复制同样的代码,仅更换命名。代码如下
【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区
【结果】:试验后发现,还是报同样的异常。

2、其次,改为使用官方@Extend方法。变更代码如下
【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区
【结果】:试验后发现,没有异常,正常显示。

3、接着,对换了我写的和官方给的@Extend方法的名称(我当时以为名称竟然有限制?!):
【结果】:试验后发现,报同样的异常。

4、当时我有点懵了,这都不行?!!然后,我更换了两个方法的位置。
【结果】这时候,报不同的异常,而且是官方给的@Extend方法。
【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区

5、多次翻看官方文档和论坛,也没见有类似的异常说明和现象。后来我灵机一闪,试着把上面的注释顺带删了。
【结果】删掉这行注释,无论是我写的还是官方给的,都可以正常使用了。
【找bug】ArkUI ETS @Extend使用异常反馈-鸿蒙开发者社区

6、跟着排查注释中的所有字符串,并非中文字符串引起。使用排除法逐步确定,是注释中的“*”引起的。

7、最后尝试了“// \ ~`!@#$%^&()-_+=?<>”都无异常,但是用了多行注释或者单行注释带了“*”,就会出现异常,无论是Preview 或者 编辑打包使用模拟器,都会报错。

三、结论

虽然底层编译代码是如何解析校验的,当前我们不得而知。但可以得出如下结论:

在目前版本的ETS语法中,在import之下,@Extend之前。
++不能使用"/* */“注释, 可以用”//“注释,但不能在注释里面带任何”*"!++

希望大家看后能够避免遇到这个问题,也盼望官方能够修复这个问题,及早填坑。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
5
收藏 2
回复
举报
3条回复
按时间正序
/
按时间倒序
FrancisJ
FrancisJ

666 这实在是太严谨细节了

回复
2022-2-9 14:22:26
大梦初醒丶
大梦初醒丶

666

回复
2022-2-9 14:36:09
民之码农
民之码农

666

回复
2022-2-11 09:11:59
回复
    相关推荐