ArkTS 基础语法学习笔记

发布时间:2026/7/3 5:19:40

ArkTS 基础语法学习笔记 ArkTS 基础语法学习笔记本文是我学习鸿蒙 ArkTS 基础篇的总结笔记涵盖基础入门、变量和类型、数组、对象、函数、箭头函数六个部分方便自己回顾也希望对同样在学 ArkTS 的朋友有帮助。一、ArkTS 基础入门ArkTS 是华为鸿蒙HarmonyOS为 ArkUI 声明式开发范式量身打造的编程语言它在 TypeScriptTS的基础上做了扩展和约束同时保留了 TS 的大部分语法特性。可以简单理解为JavaScript → TypeScript → ArkTS也就是说只要有 JS/TS 基础上手 ArkTS 会非常快。ArkTS 相比 TS 主要做了以下几点强化强制静态类型检查不允许any、unknown这类模糊类型随意使用变量类型在编译期就要明确减少运行时错误。不支持部分动态特性比如不支持Object.defineProperty、with语句等动态修改对象结构的写法保证代码可预测、可优化。面向对象 声明式 UIArkTS 既支持传统的类、接口写法也提供了Component、State等装饰器Decorator用于声明式构建 UI。一个最简单的 ArkTS 文件后缀是.etsExtended TypeScript基础的 Hello World 大致长这样function sayHello(name: string): string { return Hello, ${name}!; } console.info(sayHello(ArkTS));学习入门阶段重点是搭好 DevEco Studio 开发环境跑通一个空的 Ability 工程理解好.ets文件的基本结构为后面学变量、函数打基础。二、变量和类型2.1 变量声明ArkTS 沿用 TS 的三种声明方式但更推荐使用let和const不建议使用varlet age: number 18; // 可变 const name: string Tom; // 不可变声明后不能重新赋值let块级作用域值可以修改日常变量首选。const块级作用域值不可重新赋值适合常量、不会变的配置项。varArkTS 中不推荐甚至部分场景会报错因为它是函数作用域容易引发变量提升等问题。2.2 基本数据类型ArkTS 是强类型语言声明变量时最好显式标注类型let isDone: boolean false; let count: number 100; let message: string ArkTS; let notDefined: undefined undefined; let empty: null null;常见基础类型一览类型说明示例number数字不区分整数浮点数let n: number 3.14string字符串支持模板字符串let s: string hi ${n}boolean布尔值let b: boolean truevoid一般用于函数无返回值function log(): void {}null/undefined空值-2.3 类型推断与类型注解ArkTS 支持类型推断但强烈建议关键变量都写上类型注解这也是它和普通 JS 最大的区别之一let score 90; // 推断为 number let score2: number 90; // 显式注解更推荐需要特别注意ArkTS不允许变量类型在运行时发生改变不像 JS 那样随便变来变去也不建议使用any这是刚开始学的时候最容易踩的坑。三、数组数组是 ArkTS 中最常用的数据结构之一声明方式主要有两种// 方式一类型 方括号推荐 let list1: number[] [1, 2, 3]; // 方式二泛型写法 let list2: Arraystring [a, b, c];3.1 常用操作let fruits: string[] [apple, banana]; fruits.push(orange); // 添加元素 fruits.pop(); // 删除最后一个 console.info(fruits[0]); // 访问元素 console.info(fruits.length); // 获取长度 // 遍历 for (let fruit of fruits) { console.info(fruit); } // forEach / map / filter 同样支持 let upper fruits.map((item: string): string item.toUpperCase());3.2 注意点数组一旦声明了元素类型就不能混入其他类型的元素比如number[]里不能塞字符串这一点和普通 JS 数组差别很大。多维数组写法let matrix: number[][] [[1, 2], [3, 4]];四、对象ArkTS 中定义对象结构推荐使用interface接口或class类而不是像 JS 那样随意用字面量拼一个对象ArkTS 对对象的动态扩展做了限制。4.1 使用 interface 定义对象结构interface Person { name: string; age: number; email?: string; // 可选属性 } let p: Person { name: Tom, age: 20 }; console.info(p.name);4.2 使用 class 定义对象class Animal { name: string; age: number; constructor(name: string, age: number) { this.name name; this.age age; } speak(): string { return ${this.name} says hello; } } let dog new Animal(旺财, 2); console.info(dog.speak());4.3 注意点ArkTS 中的对象结构在编译期就要确定不支持给对象随意新增未声明的属性这和 JS 中对象是个筐啥都能装的用法不同一开始很容易报错。推荐尽量用interface描述数据结构比如接口返回的数据用class封装带方法和状态的业务对象。五、函数5.1 普通函数声明function add(a: number, b: number): number { return a b; }参数和返回值都建议显式标注类型。如果函数没有返回值返回类型写void。5.2 可选参数与默认参数function greet(name: string, greeting?: string): string { return ${greeting ?? Hello}, ${name}; } function greet2(name: string, greeting: string Hi): string { return ${greeting}, ${name}; }?表示可选参数必须放在必填参数后面。也可以直接给参数写默认值效果类似。5.3 函数类型函数本身也可以作为类型来声明变量let calc: (a: number, b: number) number; calc (a, b) a b;六、箭头函数箭头函数是 ES6 引入、在 ArkTS 中也大量使用的简洁写法尤其是在 UI 事件回调、数组方法map/filter里非常常见。6.1 基本写法// 普通函数 function add(a: number, b: number): number { return a b; } // 箭头函数写法 let add2 (a: number, b: number): number { return a b; }; // 只有一行返回值时可以省略花括号和 return let add3 (a: number, b: number): number a b;6.2 箭头函数 vs 普通函数对比点普通函数箭头函数this指向调用时动态绑定继承外层作用域的this不会改变写法相对繁琐更简洁适合回调场景是否有arguments有没有在 ArkUI 组件里写按钮点击等事件回调时箭头函数用得非常多因为它不会改变this指向可以直接访问组件内部的状态Button(点击我) .onClick(() { this.count; // 箭头函数中 this 仍指向组件实例 })七、小结这一阶段学下来ArkTS 给我最大的感受是更严格的 TypeScript。它牺牲了一部分 JS/TS 的灵活性比如禁用any、限制对象动态扩展换来的是编译期就能发现的类型安全和更好的运行时性能这也很符合它作为移动端/元服务开发语言的定位。后续学习路线上打算继续深入 ArkUI 的声明式开发Component、State、Prop等装饰器把这些基础语法真正用到界面开发中去到时候再写一篇进阶笔记。本文为个人学习笔记整理如有理解偏差欢迎指正交流。

相关新闻