3.1TypeScrip快速入门
学习TypeScript对于HarmonyOS应用开发至关重要。在HarmonyOS中,主力编程语言为ArKTS,它是基于TypeScript的一种语言,其通过与ArkUI框架的匹配,拓展了声明式UI和状态管理等能力,使开发者能够以更简洁自然的方式开发跨端应用。TypeScript本身是JavaScript的超集,通过引入静态类型定义等特性,提高了代码的可维护性和可读性,有助于在编码阶段检测潜在错误,提高开发效率另外,学习TypeScript还为处理HarmonyOS应用中的UI和应用状态提供了更强大的支持,在并发任务方面也有相应的扩展。为了更好地对HarmonyOS进行开发需要掌握TypeScript语言,本接我们重点介绍TypeScript语言。
3.1.1编程语言介绍
ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。要了解什么是ArkTS,我们首先要了解下ArkTS、TypeScript和JavaScript之间的关系:
- JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
- TypeScript 是 JavaScript 的一个超集,它扩展了 JavaScript 的语法,通过在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言。
- ArkTS兼容TypeScript语言,拓展了声明式UI、状态管理、并发任务等能力。
在学习ArkTS声明式的相关语法之前,我们首先学习下TypeScript的基础语法。
3.1.2基础类型
TypeScript支持一些基础的数据类型,如布尔型、数组、字符串等,下文举例几个较为常用的数据类型,我们来了解下他们的基本使用。
- 布尔值
TypeScript中可以使用boolean来表示这个变量是布尔值,可以赋值为true或者false。例如我们这里可以设置IsDone为False来表示未完成。
数字
TypeScript里的所有数字都是浮点数,这些浮点数的类型是 number。除了支持十进制,还支持二进制、八进制、十六进制。如下我们用十进制、二进制、八进制和十六进制分别定义了2023,当把数据通过日志方式打印出来,结果都会转换为十进制,也都是2023。
- 字符串
TypeScript里使用 string表示文本数据类型, 可以使用双引号( ")或单引号(')表示字符串。例如我们这里定义Name是一个字符串类型,其数值我们可以用双引号或者单引号包裹起来。
- 数组
TypeScrip有两种方式可以定义数组。 第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组。
第二种方式是使用数组泛型,Array<元素类型>。
- 元组
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string和number类型的元组。
例如这里我们定义了一个X元组,类型为String和Number。第一行的赋值和我们元组定义的顺序是一致的,这种是正确的。第二行先赋值Number后赋值String,这种赋值的顺序和我们定义的不一致,所以是错误的。
枚举
enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。例如我们这里定义Color为Red, Green和Blue,到时候就可以使用Color.Green来定义颜色。
- Unknown
有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。那么我们可以使用unknown类型来标记这些变量。
如下案例中,这里的Not Sure定义为Unknown后,我们可以赋值为Number类型,也可以赋值为String类型,还可以赋值为false类型。
- Void
当一个函数没有返回值时,你通常会见到其返回值类型是 void。如下的test方法,其返回类型就是Void。
- Null 和 Undefined
TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。
- 联合类型
联合类型(Union Types)表示取值可以为多种类型中的一种。例如我们这里定义MyFavoriteNumber为联合类型,其取值可以是String或者Number,我们可以给其赋值为字符串7,也可以给其赋值为Number类型7。联合类型在日常的使用过程中用的比较多,大家要掌握这种定义方式。
3.1.3条件语句
条件语句用于基于不同的条件来执行不同的动作。TypeScript 条件语句是通过一条或多条语句的执行结果(True 或 False)来决定执行的代码块。
- if 语句
TypeScript if 语句由一个布尔表达式后跟一个或多个语句组成。例如,如下代码中是一个If语句,定义的Number为5,判断的条件是Number大于0,程序满足这个条件会输出数字为正数。
- if...else 语句
一个 if 语句后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。如下代码中声明一个If-else语句,定义的Number是12,符合Number对2取余等于0的条件,所以输出为偶数。
- if...else if....else 语句
if...else if....else 语句在执行多个判断条件的时候很有用。如下代码中是一个If-else语句,定义的Number为0,满足最后的else条件,所以输出为0。
除了可以通过If-else语句进行条件判断外,还可以通过Switch-case语句进行条件判断。一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。 如下代码中我们有4个Case条件,分别是A输出日志优,B输出日志良,C输出日志及格,D输出日志不及格,最后还有一个default条件,当输入的字符不在ABCD中则表示非法输入,最后我们定义的Grade为A,所以这个代码打印的日志为优。
|
安装 typescript:
安装完成后我们可以使用 tsc 命令来执行 TypeScript 的相关代码,以下是查看版本号: