一、什么是ArkTS?
ArkTS是HarmonyOS生态的应用开发语言。
- ArkTS提供了声明式UI范式 、状态管理支持等相应的能力,让开发者可以更简洁、更自然的方式开发应用。
- ArkTS在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范化静态检查和分析 ,🙆🏻使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并且实现更好的运行性能。
- 针对JS/TS并发能力支持有限的问题,ArkTS对并发编程API和能力进行了增强。
- ArkTS支持与JS/TS高效互操作,兼容TS/JS生态。
二、ArkTS 在 TypeScript基础上增强
- 1.通过规范约束不合适的特性
ArkTS规范约束TS中过于灵活而影响开发正 确性或者给运行时带来不必要额外开销的特 性,由此可在静态分析阶段获取更确定和稳 定的信息,提升代码健壮性和性能。
- 2.保留公共子集
保留好的特性,语义与标准TS一致。例如:严格模式、空值安全等。
- 3.增加新特性
结合应用的开发体验和执行效率需 求,ArkTS增加更多功能。例如:并发增强、UI范式所依赖特性等
- 4.约束特性示例
delete操作符 在运行时动态创建新属性
三、ArkTS相对TS的约束示例:
1、强化静态类型检查:ArkTS要求所有类型在程序实际运行前都是已知的,减少运行时的类型检测,提升性能。
less
// Typescript 代码
const area = ( //在ArkTS中,此处会报错
pixels: new ArrayBuffer(8)^
offset: 0,
stride: 8,
region: { size: { height: 1, width::
}, x: y: 。 }
)
编译器不知道变量area的类型,也无法很好优化
import ( image } from '@kit.ImageKit';
const area: image.PositionArea = (
pixels: new ArrayBuffer(8),
offset: 0,
stride: 8,
region: ( size: { height: 1, width:2 },
x: 0, y: 。 }
}
四、ArkTS基于TypeScript的拓展
- ArkTS的对UI的拓展
1.UI描述: UI描述语法提供了各种装饰器、自定义组件和UI 描述机制,再配合UI开发框架中的UI内置组件、 事件方法、属性方法等共同构成了应用开发的主 体。
2.状态管理 联态靠语法实现UI相关联的数据在组件内、组 件间、页面间、应用内以及跨设备传递。