鸿蒙ArkTS和TS有什么区别?

Ark是强类型,打包编译的时候会保留类型。提高程序运行效率。

TS 支持类型校验,但是并不严格,支持any、unknown 这些不明确的类型。编译后其实js+d.ts,js文件不保留类型。

ArkTS基本禁用了动态类型

比如对象不能随意添加或者删除某些属性,对象类型要明确,需提前用interface或class把对象的类型定义号

禁用了解构赋值

展开运算符...只支持数组,不支持对象展开

禁用了call。apply,bind 这些方法改变this执行

禁用any,unknown 这些不明确的类型

通过@state @props 装饰器声明数据的时候,必须指定类型

ArkTS语法整体借鉴了TS,但是比TS更加严格

ArkTS基本并兼容了TS语法,继承了TS的所有特性,当前,ArkTS的基本上主要扩展了声明式UI能力,让开发者能够以简洁、更自然的方式开发高性能应用。推荐用ArtTS的基础上主要扩展了声明式UI能力,让开发者能够已更简洁,更自然的方式开发高性能应用,推荐用ArkTS 开发UI相关内容,TS可以用来开发业务逻辑相关内容。

ArkTS 是鸿蒙(HarmonyOS)官方推出的一种基于 TypeScript 的编程语言,专门用于鸿蒙应用开发。它在 TypeScript 的基础上增加了一些特定于鸿蒙的特性和语法糖。

以下是 ArkTSTypeScript 的主要区别:

1. 语言设计目标

TypeScript (TS)

设计目标:TypeScript 是一种静态类型的编程语言,它是 JavaScript 的超集,增加了类型系统、接口、类等特性,旨在提高代码的可维护性和可读性。

用途:广泛用于前端和后端开发,特别是在大型项目中,TypeScript 的类型系统可以帮助开发者提前发现潜在的错误,提高代码质量。

生态系统:拥有庞大的社区和丰富的工具链,如 VSCode、TypeScript 编译器、TypeScript 语言服务等。

ArKTS (ArkUI Toolkit Script)

设计目标:ArKTS 是华为为 HarmonyOS 开发的一种脚本语言,专为构建跨设备的用户界面而设计。它结合了声明式 UI 和响应式编程的特点,旨在简化多设备应用的开发。

用途:主要用于 HarmonyOS 应用的开发,特别是在构建跨设备的用户界面时。ArKTS 旨在提供一种更高效、更简洁的方式来开发 HarmonyOS 应用。

生态系统:目前主要由华为及其合作伙伴支持,生态系统相对较小,但随着 HarmonyOS 的发展,预计会逐渐壮大。

2. 语言特性

TypeScript (TS)

类型系统:支持静态类型检查,包括基本类型、联合类型、元组、枚举等。

类和接口:支持类、接口、泛型等面向对象编程特性。

模块系统:支持 ES6 模块系统,可以方便地组织和管理代码。

装饰器:支持装饰器,可以用于类、方法、属性等,增强代码的可扩展性。

工具支持:强大的编译器和语言服务,支持代码补全、类型检查、重构等。

ArKTS (ArkUI Toolkit Script)

声明式 UI:采用声明式编程范式,开发者可以更直观地描述 UI 结构和行为。

响应式编程:支持响应式编程,可以轻松处理数据变化和 UI 更新。

组件化:支持组件化开发,可以复用和组合组件,提高开发效率。

跨设备适配:内置对多设备的支持,可以轻松适配不同屏幕尺寸和设备类型。

工具支持:主要通过 DevEco Studio 提供开发工具支持,包括代码编辑、调试、预览等。

3. 语法差异

TypeScript (TS)

// 声明一个函数

function add(a: number, b: number): number {

return a + b;

}

// 声明一个接口

interface Person {

name: string;

age: number;

}

// 创建一个类

class User implements Person {

name: string;

age: number;

constructor(name: string, age: number) {

this.name = name;

this.age = age;

}

greet() {

console.log(`Hello, my name is ${this.name}`);

}

}

// 使用类

const user = new User('Alice', 30);

user.greet();

ArKTS (ArkUI Toolkit Script)

// 声明一个组件

@Entry

@Component

struct MyComponent {

@State count: number = 0;

build() {

Column() {

Text(`Count: ${this.count}`).fontSize(20).margin({ top: 20 })

Button("Increment")

.onClick(() => {

this.count++;

})

.margin({ top: 20 })

}.width('100%').height('100%')

}

}

4. 生态系统和社区

TypeScript (TS)

社区:庞大的开发者社区,丰富的第三方库和框架,如 React、Vue、Angular 等。

工具:成熟的开发工具,如 VSCode、WebStorm 等,支持 TypeScript 的语法高亮、代码补全、类型检查等。

ArKTS (ArkUI Toolkit Script)

社区:相对较小,主要由华为及其合作伙伴支持,但随着 HarmonyOS 的发展,社区正在逐渐壮大。

工具:主要通过 DevEco Studio 提供开发工具支持,包括代码编辑、调试、预览等。

总结

TypeScript (TS):是一种通用的静态类型编程语言,广泛用于前端和后端开发,特别适合大型项目的开发,具有强大的类型系统和丰富的生态系统。

ArKTS (ArkUI Toolkit Script):是专门为 HarmonyOS 设计的脚本语言,专注于构建跨设备的用户界面,采用声明式和响应式编程范式,简化多设备应用的开发。

选择哪种语言取决于你的具体需求和应用场景。如果你需要开发跨设备的 HarmonyOS 应用,ArKTS 是一个很好的选择。如果你需要开发通用的 Web 或后端应用,TypeScript 则更为合适。

相关推荐
青灯文案17 分钟前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http
m0_7482548812 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.24 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营28 分钟前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css
joan_851 小时前
layui表格templet图片渲染--模板字符串和字符串拼接
前端·javascript·layui
还是大剑师兰特1 小时前
什么是尾调用,使用尾调用有什么好处?
javascript·大剑师·尾调用
m0_748236112 小时前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
Watermelo6172 小时前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript