
引言ArkTS 是专门用于 HarmonyOS 应用开发的高级语言。在正式进入鸿蒙应用开发之前掌握 ArkTS 的基础语法是必要的前提。本节课将从零基础出发系统讲解 ArkTS 中变量与常量的声明规则、数据类型体系以及类型安全、类型推断等核心概念为后续鸿蒙应用开发打下基础。核心内容ArkTS 语言基础定位ArkTS 是基于 TypeScript简称 TS扩展升级而来的高级语言保留了 TS 的基础语法与风格并新增了两大核心能力静态类型检查在编写代码时及时发现错误。自动类型推断简化代码书写。ArkTS 支持与 TS/JavaScript 高效互操作可以完全复用现有的 TS/JS 生态之前用 TS/JS 开发的代码和工具无需重写可直接复用。ArkTS 发展历程阶段关键特性API 9 版本开始支持声明式 UI 范式提供声明式 UI 描述、状态管理、渲染控制等 UI 开发能力API 10-12 版本新增静态类型检查、并发能力增强、空值安全等机制进一步强化静态检查分析能力优化并发编程 API未来演进方向将持续迭代逐步增加并发能力增强、系统类型增强、分布式开发范式等更多现代语言特性变量与常量声明在 ArkTS 中变量是存储可变数据的容器常量是存储不可变数据的容器。声明语法变量声明使用let关键字let count: number 0;常量声明使用const关键字const MAX_COUNT: number 100;变量与常量的核心区别特性变量let声明常量const声明可变性可多次赋值声明后仅能赋值一次不可修改声明关键字letconst命名规范推荐小驼峰命名如userName推荐全大写 下划线分隔如MAX_VALUE性能优化运行时动态赋值编译时求值减少运行时计算开销示例let count: number 0; count 40; // 允许重新赋值 const MAX_COUNT: number 100; MAX_COUNT 10; // 编译报错无法给常量重新赋值ArkTS 数据类型体系ArkTS 的数据类型整体分为基本类型和引用类型两大类另有拓展类型用于特殊场景。常用基本类型类型用途示例string存储文字信息如商品标题、用户名Pura 80number存储数字信息包括整数和小数如商品价格、年龄4894boolean存储状态信息仅true和falsetrue使用示例// 声明不同类型的变量 let title: string Pura 80; let price: number 4894; let isChoose: boolean true; // 控制台打印输出 console.log(title); // 输出: Pura 80 console.log(price.toString()); // 输出: 4894 // 模板字符串语法拼接变量 console.log(The price of ${title} is ${price}); // 输出: The price of Pura 80 is 4894模板字符串说明使用反引号ESC 键下方的按键包裹文本插入变量使用${变量名}格式。引用类型引用类型不直接存储数据本身而是在内存中存储数据的内存地址通过引用访问实际数据适合存储有层级或关联关系的复杂结构。常用引用类型包括Object、Array、Enum、Class、Function等。Object 类型通用类型可以容纳任意类型的数据自带通用方法如toString()。let obj: Object { name: Pura 80, price: 4894 }; console.log(obj.toString());注意由于Object类型过于宽泛编辑器无法做针对性类型检查容易隐藏运行时错误开发中应尽量少用优先使用具体类型。Array 类型用于存储多个同类型数据提供长度查询、增删元素等操作。// 创建存储字符串的数组 let students: string[] [XiaoMing, XiaoZhang, XiaoWang, XiaoLi]; console.log(students.length); // 打印数组长度: 4 console.log(students[0]); // 打印索引为0的元素: XiaoMing students.push(XiaoHong); // 添加元素 → 长度变为5 students.pop(); // 删除末尾元素 → 长度变为4基本类型与引用类型的核心区别类型存储方式赋值行为基本类型直接存储数据值赋值时创建值的独立副本修改新变量不影响原变量值复制引用类型存储数据的内存地址赋值时复制内存地址多个变量指向同一块内存修改会影响所有指向该地址的变量地址复制示例对比// 基本类型 —— 值复制 let a: number 10; let b: number a; // b 得到 a 的独立副本 b 20; // 修改 ba 仍为 10 // 引用类型 —— 地址复制 let arr1: number[] [1, 2]; let arr2: number[] arr1; // arr2 与 arr1 指向同一个数组 arr2.push(3); // arr1 也变为 [1, 2, 3]这是笔试和面试的高频考点必须理解值复制和地址复制的不同效果。拓展数据类型枚举类型Enum枚举类型是预先定义好的一组可选命名值限制变量只能从预设选项中选择避免非法值。// 声明 Color 枚举类型预设三个可选值 enum Color { Red, Blue, Green } // 只能从预设值中选择 let fontColor: Color Color.Red;联合类型用于一个变量可能支持多种类型的场景允许变量被赋值为多种指定类型中的任意一种。let value: string | number; value Hello; // 合法 value 42; // 合法 value true; // 编译报错类型别名可以给已存在的类型起一个简洁易记的新名称简化复杂类型的重复书写。type ID string | number; let userId: ID abc123; let productId: ID 456;类型安全ArkTS 是静态类型安全语言赋值类型不匹配时编译器会直接报错提前发现问题避免运行时出错。let title: string Pura 80; title 20; // 编译报错类型不匹配自动类型推导声明变量并直接赋值时即使不手动标注类型编译器也会根据赋值内容自动推导变量类型。// 未手动标注类型编译器自动推导 meaningOfLife 为 number 类型 let meaningOfLife 42;类型断言当开发者能通过逻辑确定变量的具体类型但编译器无法自动判断时可以使用类型断言明确告诉编译器变量的具体类型。// 使用 as 关键字进行类型断言 let someObj: object Hello World; let value: string someObj as string;注意如果开发者类型判断错误会导致运行时错误。只有明确类型时才可以使用类型断言。总结本节课系统介绍了 ArkTS 的基础语法ArkTS 语言定位基于 TypeScript 扩展新增静态类型检查和自动类型推断兼容 TS/JS 生态。变量与常量声明使用let声明变量可修改使用const声明常量不可修改。常量推荐全大写 下划线命名。数据类型体系分为基本类型string、number、boolean和引用类型Object、Array、Enum等。基本类型为值复制引用类型为地址复制。拓展特性包括枚举类型、联合类型、类型别名、类型安全、自动类型推导和类型断言。