HarmonyOs开发之——TypeScript介绍、入门,及 TypeScript、JavaScript、ArkTs的具体区别解读。

一、 开发语言介绍:

TypeScript是JavaScript的超集,ArkTS则是TypeScript的超集。ArkTs是 HarmonyOs的主力开发语言,它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。

  • JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
  • TypeScript 是 JavaScript 的一个超集,它扩展了 JavaScript 的语法,通过在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言。
  • ArkTS兼容TypeScript语言,拓展了声明式UI、状态管理、并发任务等能力。

1、ArkTS基础类型:

  • let isSelect:boolean = false;  布尔值
  • let count:number = 2222; //0b9897989、0o45646、9x7e8   数字
  • let name:string = "limeimei"  字符串
  • let list:number[] = [1,2,1] 数组
  • let list:Array<number>=[1,2,1] 泛型数组
  • enum Color{r,g,b};  let c:Color = Color.Green;  枚举
  • function main():void{ ... }  函数

2、类:TypeScript支持基于类的面向对象的编程方式,定义类的关键字为 class,后面紧跟类名。类描述了所创建的对象共同的属性和方法。

A、类的定义

声明一个Person类,这个类有3个成员:一个是属性(包含name和age),一个是构造函数,一个是getPersonInfo方法,其定义如下所示。

class Person {
  private name: string
  private age: number

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  public getPersonInfo(): string {
    return `My name is ${this.name} and age is ${this.age}`;
  }
}

通过上面的Person类,我们可以定义一个人物Jacky并获取他的基本信息,其定义如下:

let person1 = new Person('Jacky', 18);
person1.getPersonInfo();

B、继承

继承就是子类继承父类的特征和行为,使得子类具有父类相同的行为。TypeScript中允许使用继承来扩展现有的类,对应的关键字为extends。

class Employee extends Person {
  private department: string

  constructor(name: string, age: number, department: string) {
    super(name, age);
    this.department = department;
  }

  public getEmployeeInfo(): string {
    return this.getPersonInfo() + ` and work in ${this.department}`;
  }
}

通过上面的Employee类,我们可以定义一个人物Tom,这里可以获取他的基本信息,也可以获取他的雇主信息,其定义如下:

et person2 = new Employee('Tom', 28, 'HuaWei');
person2.getPersonInfo();
person2.getEmployeeInfo();

在TypeScript中,有public、private、protected修饰符,其功能和具体使用场景大家可以参考TypeScript的相关学习资料,进行拓展学习。

C、模块

随着应用越来越大,通常要将代码拆分成多个文件,即所谓的模块(module)。模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,从另一个模块调用一个模块的函数。

两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的。模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export 导出它们。类似地,我们必须通过 import 导入其他模块导出的变量、函数、类等。

导出

任何声明(比如变量,函数,类,类型别名或接口)都能够通过添加export关键字来导出,例如我们要把NewsData这个类导出,代码示意如下:

export class NewsData {
  title: string;
  content: string;
  imagesUrl: Array<NewsFile>;
  source: string;

  constructor(title: string, content: string, imagesUrl: Array<NewsFile>, source: string) {
    this.title = title;
    this.content = content;
    this.imagesUrl = imagesUrl;
    this.source = source;
  }
}

导入

模块的导入操作与导出一样简单。 可以使用以下 import形式之一来导入其它模块中的导出内容。

import { NewsData } from '../common/bean/NewsData';
D、迭代器:当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都具有可迭代性。
E、for..of 语句:会遍历可迭代的对象,调用对象上的Symbol.iterator方法。 下面是在数组上使用for..of的简单例子:
let someArray = [1, "string", false];

for (let entry of someArray) {

console.log(entry); // 1, "string", false

}
F、for..of vs. for..in 语句:均可迭代一个列表,但是用于迭代的值却不同:for..in迭代的是对象的键,而for..of则迭代的是对象的值。
let list = [4, 5, 6];

for (let i in list) {
    console.log(i); // "0", "1", "2",
}

for (let i of list) {
    console.log(i); // "4", "5", "6"
}

一、TypeScript、JavaScript、ArkTs的具体区别

TypeScript、JavaScript 和 ArkTS 是三种不同的编程语言,它们之间有明显的区别和联系。下面将详细地描述它们的区别:
 

1、JavaScript:是一种高级的、解释执行的编程语言,主要用于网页开发。它的设计目的是为了在网页浏览器中运行,控制网页的行为。JavaScript 是一种动态类型语言,这意味着在运行时可以改变变量的类型。它具有单线程执行模型,意味着一次只能执行一个任务,这是它设计时的限制。
  • 动态类型系统:变量在运行时可以改变类型。
  • 单线程执行:一次只能执行一个任务。
  • 基础功能:包括控制 DOM、处理事件、执行异步操作等。
2、TypeScript:TypeScript 是 JavaScript 的一个超集,由 Microsoft 开发。它在 JavaScript 的基础上增加了静态类型系统,这意味着在编译时就能检查类型错误,提高了代码的稳定性和可维护性。TypeScript 代码需要被编译成 JavaScript 才能在浏览器或 Node.js 中运行。
  • 静态类型系统:变量类型在编译时确定,可以提供更早的错误检查。
  • 编译为 JavaScript:TypeScript 代码最终会被编译成 JavaScript。
  • 扩展 JavaScript:添加了类、接口、枚举等结构化编程特性。
3、ArkTS:ArkTS 是专为鸿蒙OS(HarmonyOS)设计的全场景应用开发语言。它在 TypeScript 的基础上进一步扩展,增加了声明式UI、状态管理等特性,以支持鸿蒙OS的组件化开发。ArkTS 也支持一次开发,多端部署,意味着在一个平台上编写代码后,可以部署到不同的设备端。
  • 声明式UI:以声明的方式定义用户界面,使代码更简洁、易维护。
  • 状态管理:提供组件状态、数据共享等机制,方便处理复杂应用状态。
  • 组件化开发:支持组件化、可配置的开发,降低开发难度,提高开发效率。
  • 与 JavaScript/TypeScript 的兼容性:作为 TypeScript 的超集,ArkTS 兼容 JavaScript 和 TypeScript 的代码和库。
     

总结:

JavaScript 是基础,广泛用于网页和前端开发。
TypeScript 是 JavaScript 的超集,增加了静态类型检查,适合大型项目和团队协作。
ArkTS** 是 TypeScript 的超集,专为鸿蒙OS设计,支持组件化、声明式UI和状态管理等特性,适用于鸿蒙OS的全场景应用开发。

谢谢阅读。劳烦关注!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No Promises﹉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值