当前位置:   article > 正文

ArkTs编译常见错误汇总(更新中)_indexed access is not supported for fields (arkts-

indexed access is not supported for fields (arkts-no-props-by-index)

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){}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/324521
推荐阅读
相关标签