一、ArkTS 简介
ArkTS 是 HarmonyOS 优选的主力应用开发语言,ArkTS 围绕应用开发在Typescript 的生态基础上做了进一步扩展,保持了TS 的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能。
- ArkTS 提供了声明式UI范式、状态管理等相应的能力,让开发者可以使用更简洁、更自然的方式开发应用
UI 描述
: 提供了各种装饰器、自定义组件和UI描述机制,配合UI开发框架中的UI内置组件、事件方法、属性方法等共同构成了应用开发的主体状态管理
: 状态管理语法实现UI相关联数据在组件内、组件间、页面件、应用内以及跨设备传递
- 同时,它在保持 Typescript 基本风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测出更多的错误,提升代码的健壮性,并实现更好的运行性能
强化静态类型检查
: ArkTS 要求所有类型在程序实际运行之前都是已知的,减少运行时的类型检测,提升性能
// TS
// 这段代码在 ArkTS 会报错,编译器不知道变量 area 的类型
const area = {
offset: 0,
stride: 9,
region: {
size: {
width: 1,
height: 1,
},
x: 0,
y: 0,
}
}
// ArkTS
import { image } from '@kit.ImageKit'
const area: image.PositionArea = {
offset: 0,
stride: 9,
region: {
size: {
width: 1,
height: 1,
},
x: 0,
y: 0,
}
}
限制在运行时改变对象布局
: 为实现最大性能,ArkTS 要求在程序执行期间不能更改对象布局
// TS
class User {
name: string = '';
age: number = '';
}
let user = new User();
(user as any).department = 'XXX';
delete (user as any).department;
// ArkTS
class User {
name: string = '';
age: number = '';
department?: string;
}
let user = new User();
user.department = 'XXX';
user.department = undefined; // 置空可选属性
- 针对JS/TS并发能力支持有限的问题,ArkTS 对并发编程API 和能力进行了增强
- ArkTs 支持与 TS/JS 高效交互操作,兼容TS/JS 生态
二、基础语法
类型
基础类型
: string、number、boolean引用类型
: Array, 自定义类枚举类型
: Enum联合类型
: Union 允许变量的值为多个类型