当前位置:   article > 正文

HarmonyOs开发之——TypeScript介绍、入门,及 TypeScript、JavaScript、ArkTs的具体区别解读。_openharmony中的arkts、js、java、c++这些分类是什么意思

openharmony中的arkts、js、java、c++这些分类是什么意思

一、 开发语言介绍:

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方法,其定义如下所示。

  1. class Person {
  2. private name: string
  3. private age: number
  4. constructor(name: string, age: number) {
  5. this.name = name;
  6. this.age = age;
  7. }
  8. public getPersonInfo(): string {
  9. return `My name is ${this.name} and age is ${this.age}`;
  10. }
  11. }

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

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

B、继承

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

  1. class Employee extends Person {
  2. private department: string
  3. constructor(name: string, age: number, department: string) {
  4. super(name, age);
  5. this.department = department;
  6. }
  7. public getEmployeeInfo(): string {
  8. return this.getPersonInfo() + ` and work in ${this.department}`;
  9. }
  10. }

通过上面的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这个类导出,代码示意如下:

  1. export class NewsData {
  2. title: string;
  3. content: string;
  4. imagesUrl: Array<NewsFile>;
  5. source: string;
  6. constructor(title: string, content: string, imagesUrl: Array<NewsFile>, source: string) {
  7. this.title = title;
  8. this.content = content;
  9. this.imagesUrl = imagesUrl;
  10. this.source = source;
  11. }
  12. }

导入

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

import { NewsData } from '../common/bean/NewsData';
D、迭代器:当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都具有可迭代性。
E、for..of 语句:会遍历可迭代的对象,调用对象上的Symbol.iterator方法。 下面是在数组上使用for..of的简单例子:
  1. let someArray = [1, "string", false];
  2. for (let entry of someArray) {
  3. console.log(entry); // 1, "string", false
  4. }
F、for..of vs. for..in 语句:均可迭代一个列表,但是用于迭代的值却不同:for..in迭代的是对象的键,而for..of则迭代的是对象的值。
  1. let list = [4, 5, 6];
  2. for (let i in list) {
  3. console.log(i); // "0", "1", "2",
  4. }
  5. for (let i of list) {
  6. console.log(i); // "4", "5", "6"
  7. }

一、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的全场景应用开发。

谢谢阅读。劳烦关注!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/317686
推荐阅读
相关标签
  

闽ICP备14008679号