HarmonyOS 鸿蒙Next原生应用开发-从TS到ArkTS的适配规则(十四)
HarmonyOS 鸿蒙Next原生应用开发-从TS到ArkTS的适配规则(十四)
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
逗号运算符,仅用在for循环语句中
规则:arkts-no-comma-outside-loops
级别:错误
为了方便理解执行顺序,在ArkTS中,逗号运算符仅适用于for循环语句中。注意与声明变量、函数参数传递时的逗号分隔符不同。
TypeScript
for (let i = 0, j = 0; i < 10; ++i, j += 2) {
// ...
}
let x = 0;
x = (++x, x++); // 1
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
ArkTS
for (let i = 0, j = 0; i < 10; ++i, j += 2) {
// …
}
// 通过语句表示执行顺序,而非逗号运算符
let x = 0;
++x;
x = x++;
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
不支持解构变量声明
规则:arkts-no-destruct-decls
级别:错误
ArkTS不支持解构变量声明。它是一个依赖于结构兼容性的动态特性并且解构声明中的名称必须和被解构对象中的属性名称一致。
TypeScript
class Point {
x: number = 0.0
y: number = 0.0
}
function returnZeroPoint(): Point {
return new Point();
}
let {x, y} = returnZeroPoint();
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
ArkTS
class Point {
x: number = 0.0
y: number = 0.0
}
function returnZeroPoint(): Point {
return new Point();
}
// 创建一个局部变量来处理每个字段
let zp = returnZeroPoint();
let x = zp.x;
let y = zp.y;
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
不支持在catch语句标注类型
规则:arkts-no-types-in-catch
级别:错误
在TypeScript的catch语句中,只能标注any或unknown类型。由于ArkTS不支持这些类型,应省略类型标注。
TypeScript
try {
// …
} catch (a: unknown) {
// 处理异常
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
ArkTS
try {
// …
} catch (a) {
// 处理异常
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
相关约束
限制throw语句中表达式的类型
本文根据HarmonyOS NEXT Developer Beta1官方公开的开发文档整理而成。
在HarmonyOS鸿蒙系统中,从TypeScript (TS) 迁移到ArkTS进行原生应用开发,主要适配规则包括:1) 理解ArkTS的组件化架构与生命周期;2) 转换TS中的数据类型和接口为ArkTS兼容格式;3) 利用ArkTS提供的UI组件重构页面布局;4) 适配事件处理机制,如点击、滑动等;5) 转换异步处理逻辑,如网络请求、文件操作等。确保API调用与ArkTS SDK一致。如果问题依旧没法解决请加我微信,我的微信是itying888。