ArkTS
HarmonyOS-NEXT-ArkTS 本文档基于NEXT版本DevEco Studio5.0API12
01 ArkTS基础语法
编程语言介绍
什么是ArkTS?
ArkTS是HarmonyOS生态的应用开发语言。
- ArkTS提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用
- 同时,它在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开 发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。
- 针对JS/TS并发能力支持有限的问题,ArkTS对并发编程API和能力进行了增强。
- ArkTS支持与TS/JS高效互操作,兼容TS/JS生态。
- API10/11及其以上逐渐演进,扩展现代语言特性,新增了
静态类型
、并发增强
、空值安全
等机制
ArkTS基于TypeScript的增强
ArkTS基于TypeScript的增强:规范的代码更好地保证正确性和性能
ArkTS相对TS的约束示例:
1、强化静态类型检查:
ArkTS要求所有类型在程序实际运行前都是已知的,减少运行时的类型检测,提升性能
- 如下ts正常的代码,在arkts中则会报错。编译器不知道变量
area
的类型,也无法很好优化
//ArkTS相对TS的约束示例:
// TypeScript
const area = { // ArkTS中会报错
pixels: new ArrayBuffer(8),
offset: 0,
stride: 8,
region: {
size: {
height: 1,
width: 2
},
x: 0,
y: 0
}
}
- 在arkts中,应给出名确类型
//ArkTS相对TS的约束示例:
import { image } from '@kit.ImageKit'
// ArkTS
const area:image.PositionArea = {
pixels: new ArrayBuffer(8),
offset: 0,
stride: 8,
region: {
size: {
height: 1,
width: 2
},
x: 0,
y: 0
}
}
2、限制在运行时改变对象布局:
为实现最大性能,ArkTS要求在程序执行期间不能更改对象布局。
- TS代码
class User{
name:string = ''
age:number = 20
}
let user = new User()
(user as any).department = 'XX'
delete (user as any).department
- ArkTS代码
// 2、限制在运行时改变对象布局:为实现最大性能,ArkTS要求在程序执行期间不能更改对象布局。
class User{
name:string = ''
age:number = 20
department?:string // 初始声明为可选
}
let user = new User()
user.department = 'XX' // 为可选属性复制
user.department = undefined // 置空可选属性
ArkTS基于TypeScript的拓展
ArkTS的对UI的拓展
1、UI描述:
UI描述语法提供了各种装饰器、自定义组件和UI描述机制,再配合UI开发框架中的UI内置组件事件方法、属性方法等共同构成了应用开发的主体。
2、状态管理:
状态管理语法实现UI相关联的数据在组件内、组件间、页面间、应用内以及跨设备传递