鸿蒙HarmonyOS教程-TypeScript语言简介【入门篇】
ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前,需要先了解一下TS语言的基础知识。
一、基础类型
1. 数字类型-number
双精度 64 位浮点值。它可以用来表示整数和分数
| let decLiteral: number = 6; |
2. 字符串类型-string
一个字符系列,使用单引号(’)或双引号(”)来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式。
| let name: string = “Runoob”; | |
| let words: string = `您好,今年是 ${ name } 发布 ${ years + 1} 周年`; |
3. 布尔类型-boolean
表示逻辑值:true 和 false。
| let flag: boolean = true; |
4. 枚举-enum
枚举类型用于定义数值集合。
| enum Color {Red, Green, Blue}; | |
| let c: Color = Color.Blue; |
5. 数组
| let arr: number[] = [1, 2]; // 在元素类型后面加上[] | |
| let arr: Array = [1, 2]; // 使用数组泛型 |
6. 元组
元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。
| let x: [string, number]; | |
| x = [‘Runoob’, 1]; |
7. 特殊类型-any、null、undefined
Any
任意值是 TypeScript 针对编程时类型不明确的变量使用的一种数据类型,变量的值会动态改变时使用
| let x: any = 1; // 数字类型 | |
| x = ‘I am who I am’; // 字符串类型 | |
| x = false; // 布尔类型 |
null
null是一个只有一个值的特殊类型。表示一个空对象引用。用 typeof 检测 null 返回是 object。
| var person = null; // 值为 null(空), 但类型为object |
undefined
undefined 是一个没有设置值的变量。typeof 一个没有值的变量会返回 undefined。
| var person; // 值为 undefined, 类型是undefined | |
| var person = undefined; // 值为 undefined, 类型为 undefined |
undefined 和 null 的区别
null 和 undefined 的值相等,但类型不等:
| typeof undefined // undefined | |
| typeof null // object | |
| null === undefined // false (类型不等) | |
| null == undefined // true (值相等) |
二、变量
var [变量名] : [类型] = 值;
| var uname = “Runoob”; | |
| let password = “123456”; |
三、常量
| const PI = 3.141592653589793; |
四、流程控制语句
| // if | |
| var num:number = 2 | |
| if(num > 0) { | |
| console.log(num+” 是正数”) | |
| } else if(num < 0) { | |
| console.log(num+” 是负数”) | |
| } else { | |
| console.log(num+” 不是正数也不是负数”) | |
| } | |
| // switch | |
| var grade:string = “A”; | |
| switch(grade) { | |
| case “A”: { | |
| console.log(“优”); | |
| break; | |
| } | |
| case “B”: { | |
| console.log(“良”); | |
| break; | |
| } | |
| case “C”: { | |
| console.log(“及格”); | |
| break; | |
| } | |
| case “D”: { | |
| console.log(“不及格”); | |
| break; | |
| } | |
| default: { | |
| console.log(“非法输入”); | |
| break; | |
| } | |
| } | |
| // for | |
| var num:number = 5; | |
| var i:number; | |
| var factorial = 1; | |
| for(i = num;i>=1;i–) { | |
| factorial *= i; | |
| } | |
| // for in | |
| var j:any; | |
| var n:any = “a b c”; | |
| for(j in n) { | |
| console.log(n[j]); | |
| } | |
| // for of | |
| let someArray = [1, “string”, false]; | |
| for (let entry of someArray) { | |
| console.log(entry); // 1, “string”, false | |
| } | |
| // forEach | |
| let list = [4, 5, 6]; | |
| list.forEach((val, idx, array) => { | |
| // val: 当前值 | |
| // idx:当前index | |
| // array: Array | |
| }); | |
| // every | |
| let list = [4, 5, 6]; | |
| list.every((val, idx, array) => { | |
| // val: 当前值 | |
| // idx:当前index | |
| // array: Array | |
| return true; // Continues | |
| // Return false will quit the iteration | |
| }); | |
| // while | |
| var num:number = 5; | |
| var factorial:number = 1; | |
| while(num >=1) { | |
| factorial = factorial * num; | |
| num–; | |
| } | |
| // do while | |
| var n:number = 10; | |
| do { | |
| console.log(n); | |
| n–; | |
| } while(n>=0); |
在循环语句中支持break和continue关键字,跳出或继续循环
五、函数
语法格式:
| // 默认 | |
| function function_name(){} | |
| // 带返回值,:后的T为返回值类型 | |
| function function_name(): T{} | |
| // 带参函数,支持默认值 | |
| function function_name(param1[:type],param2[:type] = default_value) {} | |
| // 带剩余参数,函数的最后一个命名参数 restOfName 以 … 为前缀,它将成为一个由剩余参数组成的数组 | |
| function buildName(firstName: string, …restOfName: string[]) { | |
| return firstName + ” ” + restOfName.join(” “); | |
| } | |
| // 匿名函数 | |
| var res = function( [arguments] ) { … } | |
| // 构造函数 | |
| var res = new Function ([arg1[, arg2[, …argN]],] functionBody) | |
| // Lambda 函数 | |
| ( [param1, param2,…param n] )=>statement; |
六、类( Class )
语法格式:
| class class_name { | |
| // 类作用域 | |
| } |
普通
示例:
| class Car { | |
| // 字段 | |
| engine:string; | |
| // 构造函数 | |
| constructor(engine:string) { | |
| this.engine = engine | |
| } | |
| // 方法 | |
| disp():void { | |
| console.log(“发动机为 : “+this.engine) | |
| } | |
| } | |
| var obj = new Car(“Engine 1”) | |
| obj.field_name // 访问属性 | |
| obj.function_name() // 访问方法 |
继承
使用extends作为关键字:
| class Shape { | |
| Area:number | |
| constructor(a:number) { | |
| this.Area = a | |
| } | |
| test() {} | |
| } | |
| class Circle extends Shape { | |
| disp():void { | |
| console.log(“圆的面积: “+this.Area) | |
| } | |
| test() { | |
| super.test() // 重写父类方法 | |
| } | |
| } | |
| var obj = new Circle(223); | |
| obj.disp(); | |
| obj.test; |
七、接口
语法定义:
| interface interface_name { | |
| } |
普通
| interface IPerson { | |
| firstName:string, | |
| lastName:string, | |
| sayHi: ()=>string | |
| } | |
| var customer:IPerson = { | |
| firstName:”Tom”, | |
| lastName:”Hanks”, | |
| sayHi: ():string =>{return “Hi there”} | |
| } |
接口继承
接口可以通过关键字extends来继承其他接口以扩展自己。
单继承
| interface Person { | |
| age:number | |
| } | |
| interface Musician extends Person { | |
| instrument:string | |
| } | |
| var drummer = {}; | |
| drummer.age = 27 | |
| drummer.instrument = “Drums” |
多继承
| interface IParent1 { | |
| v1:number | |
| } | |
| interface IParent2 { | |
| v2:number | |
| } | |
| interface Child extends IParent1, IParent2 { } | |
| var Iobj:Child = { v1:12, v2:23} |
八、导入( Import )
通过关键字import导入其他文件
| import someInterfaceRef = require(“./SomeInterface”); |
最后,为了能让大家更好的去学习提升鸿蒙 (Harmony OS) 开发技术,小编连夜整理了一份30个G纯血版学习资料(含视频、电子书、学习文档等)以及一份在Github上持续爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开发手册》(共计890页),希望对大家有所帮助。
纯血版鸿蒙 HarmonyOS 4.0 视频学习资料


需要以上视频学习资料小伙伴
请点击→纯血版全套鸿蒙HarmonyOS学习资料
《纯血版华为鸿蒙 (Harmony OS)开发手册》
这份手册涵盖了当前鸿蒙 (Harmony OS) 开发技术必掌握的核心知识点
纯血版鸿蒙 (Harmony OS)开发手册部分精彩内容
HarmonyOS 概念:
- 系统定义
- 技术架构
- 技术特性
- 系统安全

如何快速入门?
- 基本概念
- 构建第一个ArkTS应用
- 构建第一个JS应用
- ……

开发基础知识:
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……

基于ArkTS 开发:
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- .……

获取以上文中提到的这份纯血版鸿蒙 (Harmony OS) 开发资料的小伙伴
请点击→纯血版全套鸿蒙HarmonyOS学习资料
🚀写在最后
- 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
- 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
- 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
- 想要获取更多完整鸿蒙最新VIP学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/7938175db5.html
