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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【专题】2024年全球生物医药交易报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38191 在当今复杂多变的全球经济环境下,医药行业正面临着诸多挑战与机遇。2024 年,医药行业的发展态势备受关注。 一方面,全球生物医药交易活跃,2021 - 2023 年的交易中,已…

统信UOS开发环境支持rust

集成了Rust编译器和包管理工具,支持系统级编程、网络应用等多场景,为开发者提供丰富的库支持。 文章目录 一、环境部署1. rust开发环境安装2. rust开发环境配置二、代码示例三、常见问题1. 借用和所有权问题2. 编译器错误和警告一、环境部署 1. rust开发环境安装 rust是一门…

Addressables资源打包(AA包)代码中改变远程地址

接着上一篇“Unity资源打包Addressable AA包” 还是先贴代码 LoadPath.cs 中定义一个远程服务器的地址,这个地址将来在代码中会修改 namespace HFS {public class LoadPath{public static string Path "http://172.18.216.168:6565/HFS/1/";} } 远程服…

linux基础-完结(详讲补充)

linux基础-完结 一、Linux目录介绍 二、基础命令详细讲解 1. ls(列出目录内容) 2. cd(更改目录) 3. clear(清除终端屏幕) 4. pwd(显示你当前所在的目录) 5. vim(文本编辑器) 6. touch(创…

开启鸿蒙开发之旅:准备篇

写在前面 Q:为什么要学习鸿蒙? A:没有特定的理由,有可能是因为大环境不好的原因,大家越来越卷,技术革新越来越快,如果手里多掌握一门技术,心里会更有底气一些。再一个自己只有前端开发经验,平时…

倒计时3天 | 2024 CCF中国开源大会仪式解读

点击蓝字 关注我们 CCF Opensource Development Committee CCF 大会简介 2024 CCF中国开源大会(CCF ChinaOSC)将于2024年11月9日至10日在深圳召开。本届大会由中国计算机学会主办,CCF开源发展委员会、鹏城实验室、新一代人工智能产业技术创新…

硬件基础17 半导体存储器——随机存取存储器RAM

目录 一、异步SRAM 二、同步SRAM 三、DRAM 四、字长位数扩展 五、字数的扩展 RAM是另一大类存储器,它与ROM的最大区别就是数据易失性,一旦失去电源供电,所存储的数据立即丢失。最大优点是可以随时快速地从其中任一指定地址读出&#xff…

安装VMware Tools选项显示灰色以及连接不上服务器,下载出错的正确解决办法

1.显示灰色解决办法: 解决办法: 关闭虚拟机 选择“虚拟机设置”,分别添加一个“软盘”和一个“CD/DVD”,并将所有软盘和CD/DVD(包括自带的)“连接”选项全部更改为“使用物理驱动器” 2.关闭虚拟机重启即…

git中使用tag(标签)的方法及重要性

在Git中打标签&#xff08;tag&#xff09;通常用于标记发布版本或其他重要提交。 Git中打标签的步骤&#xff1a; 列出当前所有的标签 git tag创建一个指向特定提交的标签 git tag <tagname> <commit-hash>创建一个带注释的标签&#xff0c;通常用于发布版本 git…

BMC运维管理:IPMI实现服务器远控制

IPMI实现服务器远控制 实操一、使用IPMI重置BMC用户密码实操二、使用IPMI配置BMC的静态IP实操三、IPMI实现BMC和主机控制操作实操四、ipmitool查看服务器基本信息实操五、ipmitool实现问题定位BMC(Baseboard Management Controller,基板管理控制器)是服务器硬件的一个独立管…

Android Profiler 内存分析

Android studio&#xff08;下面简称AS&#xff09;为App提供的性能分析工具&#xff0c;在AS3.0替换掉旧的分析工具&#xff0c;对于其使用方法&#xff0c;官方也有对应的介绍&#xff1a;Android Profiler 对于使用方法&#xff0c;我只用到比较简单的功能&#xff0c;高级的…

vue3 基于element-plus进行的一个可拖动改变导航与内容区域大小的简单方法

1、先上个截图&#xff1a; 说明&#xff1a;拖动上面的分隔栏就可以实现&#xff0c;改变左右区域的大小。 2、上面的例子来自官网的&#xff1a; Container 布局容器 | Element Plus 3、拖动的效果来自&#xff1a; https://juejin.cn/post/7029640316999172104#heading-1…

adminPage-vue3依赖DetailsModule版本说明:V1.2.1——1) - 新增span与labelSpan属性

文章目录 更新内容DetailsModuleAPI汇总属性自定义对象config.list(array<object> 类型) 使用span属性&#xff08;24栅格系统&#xff09; 更新内容 新增span与labelSpan属性&#xff0c;当使用span属性时将不适用默认的布局&#xff0c;如果24栅格系统进行重新布局 D…

系统聚类的分类数确定——聚合系数法

breast_cancer数据集分析——乳腺癌诊断 #读取乳腺癌数据 import pandas as pd import numpy as np from sklearn.datasets import load_breast_cancer data load_breast_cancer() X data.data y data.target.. _breast_cancer_dataset:Breast cancer wisconsin (diagnosti…

Android 实现柱形图

在 Android 中实现柱状图&#xff0c;可以使用流行的图表库 MPAndroidChart&#xff0c;它支持多种类型的图表&#xff0c;包括柱状图、折线图、饼图等。下面是一个基本的柱状图实现步骤&#xff0c;具体分为以下几个部分&#xff1a; 1. 添加依赖 首先&#xff0c;你需要在 …

dolphin 配置data 从文件导入hive 实践(一)

datax 支持多种数据源的相互读写&#xff0c;作为开源软件&#xff0c;提供了离线采集功能&#xff0c;方便系统开发&#xff0c;过程中遇到诸多配置&#xff0c;需要开发者自己探索&#xff0c;免费同样有成本 配置模板 {"setting": {},"job": {"s…

AUTOSAR CP Ethernet State Manager(EthSM)规范的主要功能以及工作原理导读

AUTOSAR Ethernet State Manager&#xff08;以下简称EthSM&#xff09;规范的主要功能 AUTOSAR Ethernet State Manager&#xff08;以下简称EthSM&#xff09;规范的主要功能包括&#xff1a; 通信控制 网络模式管理&#xff1a;为通信管理器&#xff08;ComM&#xff09;提…

深度学习中的感受野:从基础概念到多层次特征提取

在深度学习&#xff0c;特别是计算机视觉任务中&#xff0c;感受野&#xff08;Receptive Field&#xff09;是一个至关重要的概念。它指的是在神经网络中某一层的神经元在输入图像上“看到”的区域大小。感受野的大小影响了网络能捕捉的特征层级&#xff0c;从而决定了它的特征…

VirtIO实现原理(1)

本文内容参考: VirtIO实现原理——PCI基础_virtio-pci-CSDN博客 QEMU源码全解析 —— virtio(3)_qemu virtio block bus-CSDN博客 特此致谢! 序言 本系列文章是笔者在看了网名为“享乐主”的VirtIO系列文章后决心要写的。这位博主的“VirtIO专栏”中博文的内容从技术层…

2024年双11激光投影仪哪个品牌最好?当贝新品震撼视觉的秘密武器

激光投影仪逐渐占据家庭娱乐生活的中心位置&#xff0c;以其超大屏优势与卓越的性能获得了众多消费者的青睐。双11购物狂欢节期间&#xff0c;正是入手一台高品质激光投影仪的好时机&#xff0c;各大厂商也纷纷推出了品牌新品&#xff0c;2024年双11激光投影仪怎么选&#xff1…