# 什么是 ArkTS?OpenHarmony 和 HarmonyOS 应用背后的语言 > ArkTS 是 OpenHarmony 和 HarmonyOS 应用开发的首选语言,基于 TypeScript 并采用更严格的静态类型。本文介绍它与 TypeScript 的区别,并附代码示例。 来源: https://ohosify.com/zh/blog/what-is-arkts 发布: 2026-10-01 **简短回答:** ArkTS 是 OpenHarmony 和 HarmonyOS 应用开发的首选编程语言。它基于 TypeScript 并保留其基本风格,但增加了更严格的规则(如强制静态类型),使代码可以在编译期检查并运行得更快。 ## 什么是 ArkTS? 根据 OpenHarmony 官方文档,ArkTS 在保持 TypeScript 基本风格的同时,对 TypeScript 生态进行了扩展。它尽可能保持与 TypeScript 和 JavaScript 生态的兼容,并在开发阶段强化静态检查和分析,从而提高程序的稳定性和运行性能。 ArkTS 与声明式 UI 框架 ArkUI 搭配使用,在 DevEco Studio 中开发。 ## ArkTS 与 TypeScript 有什么区别? 文档中列出的主要特性(API 10 及以上): | 特性 | 含义 | |---|---| | 强制静态类型 | 类型在编译期已知,编译器可以验证代码,运行时需要的检查更少。 | | 固定对象布局 | 程序运行期间对象的结构不能改变。 | | 受限的运算符 | 为了清晰和性能,限制运算符的行为,例如一元加号只能用于数值类型。 | | 不支持结构化类型 | 由于实现复杂,暂不支持。 | 实际使用中,一些动态的 TypeScript 写法(例如 `any` 类型)在 ArkTS 中是不允许的。迁移代码时请遵循官方的 TypeScript 到 ArkTS 适配规则。 ## ArkTS 代码是什么样子的? 如果你了解 TypeScript,语法会很熟悉。变量使用 `let` 和 `const`: ```ts let hi: string = 'hello'; const hello: string = 'hello'; ``` 数组、枚举和联合类型: ```ts let names: string[] = ['Alice', 'Bob', 'Carol']; enum ColorSet { Red, Green, Blue } type Animal = Cat | Dog | Frog | number | string | null; ``` 函数和类需要显式声明类型: ```ts function add(x: string, y: string): string { return `${x} ${y}`; } class Person { public name: string = ''; constructor(n: string) { this.name = n; } } ``` ## ArkTS 的空安全是怎样的? 所有类型默认不可为空。要允许 `null`,请使用联合类型,并使用可选链安全地访问属性: ```ts let x: number | null = null; // return this.spouse?.nick; ``` ## 如何用 ArkTS 和 ArkUI 构建界面? 页面是一个带 `@Component` 装饰器和 `build()` 方法的 `struct`。`@Entry` 把页面标记为入口,`@State` 让值具有响应性,值变化时界面会自动更新: ```ts @Entry @Component struct Index { @State message: string = 'Hello World'; build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) } .width('100%') } .height('100%') } } ``` 在你的第一个项目中构建并运行它:[你的第一个 ArkTS 应用](/zh/blog/first-arkts-app)。 ## 后续步骤 - [如何安装 DevEco Studio](/zh/blog/install-deveco-studio) - [你的第一个 ArkTS 应用](/zh/blog/first-arkts-app) - 官方语言参考:[GitHub 上的 OpenHarmony 文档](https://github.com/openharmony/docs)