ArkTs编译常见错误汇总(更新中)

1)arkt-no-props-by-index错误

修改:使用Record<string, Object>来转换,或者使用ObjectUtils.mapToObject()

2)ark-no-func-expressions 错误

解析:把function()换成()->

3)type ‘undefined’ cannot be used as an index type

解析:类型匹配异常。可以在变量创建时使用合并操作符?来兼容‘undefined’,例如:index?: number

4)the retrun type of an async function or method must be the global Promise type,Did you mean to write ‘Promise<xxx | undefined>’

解析:按照提示修改即可,将undefined放在<>中。

5)type ‘xxx’ is not assignable to type ‘bbb’

解析:常见于与创建的变量没有设置默认值或者设置的类型有缺失造成使用合并操作符?或者 | 来声明变量,如果是在自定义组件中的@State变量,可在组件初始化调用时({s属性声明中设置})。例如 xxx ?: bbb

6)argument of type ‘xxx’ is not assignable to parameter of type ‘bbb’

解析:和问题5一样,常见于与创建的变量没有设置默认值或者设置的类型有缺失造成使用合并操作符?或者 | 来声明变量。例如 xxx ?: bbb

7)variable ‘value’ is used before being assigned

解析:在for循环中,如果不满足初始条件,此时value就会在赋值前被调用,可以事先初始化下value,例如 let value : object = new Object()

8)router# getParams()中的数据在SDK升级到10后接受时报错

解析:和问题1一样,在接收时可以使用Record<string, Object>来转换。例如

   Const params : Record<string, Object> = router.getParams() as Record<string, Object>

9)arkts-no-regexp-liferals

解析:使用 new RegExp来声明正则表达式

10)arkts-no-structural-identity

解析:该错误是因为SDK升级造成的,可以在$r()调用处追加 .id

11)arkts-no-any-unknown

解析:存在没有声明具体类型的变量,常见于try-catch中的err,可以将它声明为BussinessError

12)自定义组件中声明的方法提示未初始化

解析:从SDK10开始,要求所有变量都必须完成初始化,如果组件对外提供了回调函数,可以通过()=>{}将它初始化成空方法。

例如:test:()=>void = ()=>{}

13)ark-ts-for-of-str-arr

解析:支持迭代字串数据和TypeAdapter,但不支持迭代对象。可以将对象转成array后再进行迭代。

例如:

let arrays = Array.from(XXX) 

for(let a of arrays){}

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值