【找bug】ArkUI ETS @Extend使用异常反馈 原创 精华
【找bug】ArkUI ETS @Extend使用异常反馈
一、bug背景
今天进行ETS的语法学习,在做装饰器的@Extend 的试验时,先复制了官网给的例子代码来尝试下效果。
官方链接:++https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ts-component-based-extend-0000001134698822++
效果是这样的:
于是,我个人在其上方再写一个自己的@Extend方法,试验下:
但结果却是preview报异常 …
看着异常提示,我横看竖看,都没有发现代码啥问题,代码几乎一模一样,无非换了命名,改了字体颜色,删除斜体样式。
但想想这么简单的代码竟然报异常,而且这异常我还找不出任何问题!于是放不下面子的我,非得一点点来给他找到问题原因不可。
二、问题定位
1、首先为了更好确定问题原因,先复制同样的代码,仅更换命名。代码如下
【结果】:试验后发现,还是报同样的异常。
2、其次,改为使用官方@Extend方法。变更代码如下
【结果】:试验后发现,没有异常,正常显示。
3、接着,对换了我写的和官方给的@Extend方法的名称(我当时以为名称竟然有限制?!):
【结果】:试验后发现,报同样的异常。
4、当时我有点懵了,这都不行?!!然后,我更换了两个方法的位置。
【结果】这时候,报不同的异常,而且是官方给的@Extend方法。
5、多次翻看官方文档和论坛,也没见有类似的异常说明和现象。后来我灵机一闪,试着把上面的注释顺带删了。
【结果】删掉这行注释,无论是我写的还是官方给的,都可以正常使用了。
6、跟着排查注释中的所有字符串,并非中文字符串引起。使用排除法逐步确定,是注释中的“*”引起的。
7、最后尝试了“// \ ~`!@#$%^&()-_+=?<>”都无异常,但是用了多行注释或者单行注释带了“*”,就会出现异常,无论是Preview 或者 编辑打包使用模拟器,都会报错。
三、结论
虽然底层编译代码是如何解析校验的,当前我们不得而知。但可以得出如下结论:
在目前版本的ETS语法中,在import之下,@Extend之前。 |
---|
++不能使用"/* */“注释, 可以用”//“注释,但不能在注释里面带任何”*"!++ |
希望大家看后能够避免遇到这个问题,也盼望官方能够修复这个问题,及早填坑。
666 这实在是太严谨细节了
666
666