鸿蒙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 则更为合适。

相关推荐
恋猫de小郭3 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅10 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606111 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了11 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅11 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅11 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅12 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment12 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅12 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊12 小时前
jwt介绍
前端