官方描述
ArkTS 是 HarmonyOS 优选的主力应用开发语言。ArkTS 基于 TypeScript (简称 TS )语言扩展而来,是 TS 的超集。
ArkTS 继承了 TS 的所有特性。
当前,ArkTS 在 TS 基础上主要扩展了声明式 UI 能力,让开发者以更简洁、更自然的方式开发高性能应用。
当前扩展的声明式 UI 包括如下特性
-基本 UI 描述:ArkTS 定义了各种装饰器、自定义组件、UI 描述机制,再配合 UI 开发框架中的 UI 内置组件、事件方法、属性方法等共同构成了 UI 开发的主体。
-状态管理:ArkTS 提供了多维度的状态管理机制,在 UI 开发框架中,和 UI 相关联的数据,不仅可以在组件内使用,还可以在不同组件层级间传递,比如父子组件之间、爷孙组件之间,也可以是全局范围内的传递,还可以是 跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。开发者可以灵活的利用这些能力来实现数据和 UI 的联动。
-动态构建 UI 元素:ArkTS 提供了动态构建 UI 元素的能力,不仅可以自定义组件内部的 UI 结构,还可复用组件样式,扩展原生组件。
-渲染控制:ArkTS 提供了渲染控制的能力。条件渲染可根据应用的不同状态,渲染对应状态下的部分内容。循环渲染可从数据源中迭代获取数据,并在每次迭代过程中创建相应的组件。
-使用限制与扩展:ArkTS 在使用过程中存在限制与约束,同时也扩展了双向绑定等能力。
未来,ArkTS 会结合应用开发 /运行的需求持续演进,逐步提供并行和并发能力增强、类型系统增强、分布式开发范式等更多特性。

个人感觉:语法上即视感太强,与其说是 TS ,不如说是 Jetpack Compose + Swift UI ;
不知道底层是怎么实现的,之前就有看到过鸿蒙是支持 javascript 来开发的;
不知道有没有开发过的同学分享下使用体验;
( PS:这个应该不是仓颉)
|  |      1ntfnyz      2022-11-17 11:28:07 +08:00  15 要素过多 双方辩手即将进场 | 
|  |      2yuhangch      2022-11-17 11:29:17 +08:00 那得请写 TS 和 SwiftUI 的 v 友发言了,声明式有很大的优势吗?还是只是种风格? ArkScript 我觉的都好一些,ArkTS 阿巴阿巴,套娃🪆 | 
|  |      3kindjeff      2022-11-17 11:30:13 +08:00 (是否意味着前端 build 流程又多了一步从 ArkTS->TS ) | 
|  |      4nomagick      2022-11-17 11:32:08 +08:00  1 什么鬼为什么要来蹭 TS 的热度 | 
|      5DeactivatedOcean      2022-11-17 11:33:36 +08:00 via Android  10 宇宙第一语言 | 
|  |      6Bijiabo      2022-11-17 11:34:04 +08:00 呸~ | 
|  |      8churchill      2022-11-17 11:38:19 +08:00  2 是 dart 魔改太难吗 tui~ | 
|      9registerrr      2022-11-17 11:40:18 +08:00 @churchill #8 哈哈哈哈哈哈 | 
|      10TWorldIsNButThis      2022-11-17 11:41:12 +08:00 如果可以给 ts 加上 kotlin 的语法的话,那还不错 不过图里看起来就是个 framework | 
|  |      11icyalala      2022-11-17 11:49:06 +08:00  2 就是个 SwiftUI 这类框架,这好意思叫 “语言”。。 | 
|  |      12hackpro      2022-11-17 11:50:44 +08:00 via iPhone 每次都想搞个大新闻🐶 | 
|      13misslita      2022-11-17 11:52:24 +08:00 via Android  1 不错有进步,没拿山海经来命名了 | 
|      14zbinlin      2022-11-17 11:54:56 +08:00 这介绍怎么看都像是一个框架呀 | 
|      15dguge      2022-11-17 11:58:53 +08:00 via iPhone  1 在 v 站,不要提 hw 二字,大家会应激的 | 
|  |      16cvooc      2022-11-17 11:59:03 +08:00 嵌套地狱 | 
|  |      17jasonkayzk      2022-11-17 12:24:33 +08:00 沸腾 Lang | 
|  |      18icedx      2022-11-17 12:29:20 +08:00 赢了! | 
|  |      19molvqingtai      2022-11-17 12:36:41 +08:00 超集的超集,真超级棒👍🏻 | 
|  |      20mikeven      2022-11-17 12:36:43 +08:00  2 遥遥领先, 遥~遥~领先!! | 
|      21wangerka      2022-11-17 12:37:18 +08:00 缝合怪 | 
|  |      22dacapoday      2022-11-17 12:40:52 +08:00  32 一如既往保持 hw 吹牛的传统:明明只是个 UI ,非说是 OS ,明明只是个 UI 库,非说是语言。有时还要踩一脚它抄袭的对象。 | 
|      23yvescheung      2022-11-17 12:46:27 +08:00  2 害怕,以后用外国编程语言的是不是都要成为买办汉奸了 | 
|  |      24WebKit      2022-11-17 12:53:52 +08:00 via Android 这不就是 Android 的 Jetpack Compos 吗?只不过 Android 用的 kotlin 。鸿蒙这也太快了吧?这边出个啥,他就抄个啥 | 
|      25mmm159357456      2022-11-17 12:56:38 +08:00 套娃是吧 | 
|  |      26ChefIsAwesome      2022-11-17 12:57:24 +08:00 via Android  4 不是汉字编程,我很难支持他 | 
|      27Justin13      2022-11-17 13:04:52 +08:00 via Android 这种也配叫声明式 UI | 
|      30xnmlllcy1      2022-11-17 13:11:38 +08:00  1 爱信等骂,经过今年秋招,华子又多了一个铁黑子😀😀😀 | 
|      31xnmlllcy1      2022-11-17 13:12:05 +08:00  2 华为出品 坚决抵制 | 
|      32zxCoder      2022-11-17 13:23:37 +08:00  1 不谈华为这个,就说 Jetpack Compose ,Swift UI  这写个页面不得累死,这么一行行代码的 | 
|      33flippedww      2022-11-17 13:24:23 +08:00 @Justin13 这已经几乎和 Jetpack Compose 和 SwiftUI 一模一样了, 这俩都是声明式 UI | 
|  |      34silvernoo      2022-11-17 13:29:40 +08:00  1 给 flutter 套了 ts 的壳 | 
|  |      35MengiNo      2022-11-17 13:29:45 +08:00 via Android dart 不是被吐槽了半天了么(虽然个人能接受)… | 
|  |      36leavic      2022-11-17 13:30:52 +08:00 华为可是给中国人长脸了啊 | 
|  |      37Leonard      2022-11-17 13:31:14 +08:00 这不是 SwiftUI 么 | 
|      38wangxiang      2022-11-17 13:31:27 +08:00 遥遥领先 | 
|  |      39minami      2022-11-17 13:33:34 +08:00 阶段性沸腾产品罢了 | 
|      40okakuyang      2022-11-17 13:34:56 +08:00  12 这个结构基本上和 swiftui 一致。SwiftUI 是声命式 UI 框架, 渲染出来的是原生组件,button 还是原来 UIKit 的 UIButton ,但是一部分 View,Text 组件重新开发了。SwiftUI 是运行在 Apple 家的四个平台,iOS ,iPadOS ,TVOS ,WatchOS 上,每个平台渲染样式和行为都适配该平台特征的 UI 组件。这点华为也是一样的,华为这个也是跨平台,但是对不同平台渲染出来的按钮样式也是不一样的。基本上华为从写法和用法都高度模仿了 SwiftUI ,只不过华为选的是国内 web 前端开发者熟悉的的 JS 语言,又因为 JS 不能很好处理类型,换成了 TS ,再在 TS 的基础上添加这一套声明式 UI 的语法特点做的一套框架。由于用的是 JS ,那当然 JS 的劣势是完全继承的,比如启动的时候多启动一个小的 JS 引擎会消耗时间,JS 对多线程的支持,JS 不适合密集运算,需要在 C 上完成。优势自然是国内大批前端程序员可以方便的进入生态。 | 
|  |      41wangyzj      2022-11-17 13:36:05 +08:00  1 好像 dart 啊 | 
|  |      42wdhwg001      2022-11-17 13:44:28 +08:00 via iPhone 明明就是个 DSL ,和 jsx/vue 文件一个级别的,非要叫语言,市场部赢麻了沸腾了是吧。 | 
|  |      43R0ckyY2      2022-11-17 13:50:43 +08:00  20 华为的代名词就是:抄袭,缝合,欺骗。华为出品,必属垃圾。 | 
|  |      44ccyu220      2022-11-17 13:55:44 +08:00  4 不敢评价,一个星期前在抖音说了句不能算语言就是个框架 现在还能收到别人在骂我 | 
|  |      45s524256521      2022-11-17 14:04:34 +08:00 via Android 还行吧,移动端最火的跨平台声明式就是 compose 和 Swift UI ,华为要抄肯定只能抄这俩,不意外,就看具体操作了。 | 
|  |      46HuskyYellow      2022-11-17 14:32:47 +08:00  1 你再发一个 Dcloude 的 uts , 大家一起沸腾,然后将寒气传给每一个人 | 
|  |      47Natsuno      2022-11-17 14:35:13 +08:00 不是白象的我不用 | 
|  |      48anteros      2022-11-17 14:35:59 +08:00 菊语言 | 
|  |      49javlib      2022-11-17 14:54:29 +08:00  2 (圣光变身)一切邪恶,终将绳之以法 | 
|  |      50aw2350      2022-11-17 15:57:04 +08:00  2 这种垃圾公司,老老实实做你自己的主业不行吗。。。有这种公司的存在简直就是阻碍中国 IT 的创新与进步 | 
|      51anonymous2351d00      2022-11-17 16:09:28 +08:00 我苹果看不见 | 
|      52james504      2022-11-17 16:10:28 +08:00  1 不敢评价,怕被扣: 汉奸, 反贼, 你不喜欢你别用啊, 你不喜欢你可以不看啊, 你那么不喜欢中国别打中文字啊, 中国有这家公司不支持就算了你还踩他你不爱国, ..... 的帽子。 | 
|      54royzxq      2022-11-17 16:27:10 +08:00 超集的超集,我缝,我疯狂的缝 | 
|      55phelop      2022-11-17 16:33:59 +08:00  1 别的不清楚 我只知道 php 文档这句话要改一下了 PHP is the best language for web programming | 
|  |      56marcong95      2022-11-17 16:50:32 +08:00  1 这语法,楼上也别说这是 UI 库不是语言了,这不是语言太侮辱 TS 了吧。高度同意楼上说的叫 ArkScript 比叫 ArkTS 好 Button() {}.onClick(() => {}) 你跟我说说 TS 哪来的这种奇妙的语法 SwiftUI 不太懂,苹果的语言的语法一直都挺奇妙的。从 TS 的角度来看,Button 这东西到底是个啥 (本来想用奇葩,迫于 i2ex ,还是改成中性偏褒义的奇妙吧) | 
|  |      57Ashore      2022-11-17 16:50:34 +08:00  1 ArkTS is the best language for web programming | 
|      59iloveayu      2022-11-17 17:08:46 +08:00 能让鸿蒙再次伟大,华为沸腾两次。 | 
|      60xz410236056      2022-11-17 17:08:48 +08:00 @yuhangch #2 别的不知道,SwiftUI 优势很大,大就大在,能让一些喜欢用纯代码布局的傻逼和喜欢用 GUI 的开发人员兼容到一起,简直跨时代。 | 
|  |      61fanxasy      2022-11-17 17:22:04 +08:00  2 一副安卓被吸干,冷笑走向 TS 的画面跃然纸上 | 
|      62bugmaker233      2022-11-17 18:12:29 +08:00 支持华为! | 
|  |      63rb6221      2022-11-17 18:23:02 +08:00 稍微看了下,DSL 呗……勉强算语言吧,不过给程序员用的东西真没必要过度营销,你做的好大家自然会买账 | 
|  |      64xuelu520      2022-11-17 18:43:48 +08:00 为啥不叫 hwTS 语言。 | 
|  |      65calvinHxx      2022-11-17 18:53:00 +08:00 我先来带节奏!!!。 ArkTS 是世界上最好的语言. [手动狗头] | 
|  |      66FightPig      2022-11-17 19:25:51 +08:00 v2 上华为不管出的是啥都是 p ,毕竟 v2 上的全是大神。 | 
|  |      67ylls      2022-11-17 19:49:39 +08:00 @FightPig 可能技术人员比较较真 觉得技术领域还是少一些营销 务实点好 不可否认这东西对国内来说是个进步 但是相比目前的主流有一定的差距 借鉴不可怕 就怕的是借鉴别人的时候还要踩低一下凸显自己很牛逼 | 
|  |      68newmlp      2022-11-17 19:50:53 +08:00 唾~ | 
|  |      69Torpedo      2022-11-17 21:19:00 +08:00 看起来是给鸿蒙 os 开发用的。那么问题来了:鸿蒙 os 开发前景怎么样?市场待遇、需求如何? | 
|  |      70ZRS      2022-11-17 21:23:18 +08:00 via iPhone 比缝更缝 | 
|      72ruxuan1306      2022-11-17 21:42:51 +08:00 TypeScript 很不错,它让很多熟练纯面向对象语言的开发者在 JavaScript 中也能保持一切都写在 Class 里的良好习惯。 | 
|  |      73blless      2022-11-17 21:46:54 +08:00 看了一眼文档,没有实际操作。arkTS 是带编译器的,可以进行 AOT 编译 ( https://developer.harmonyos.com/cn/develop/arkCompiler/)。然后通过下方地址再进去看了一眼, 指向了一个运行时仓库 https://gitee.com/openharmony/arkcompiler_ets_runtime 再看了一眼其他相关页面 https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/ARK-Runtime-Subsystem-zh.md 一直到最近都还在更新,如果鸿蒙真的用上了这些,说语言也不过分。 | 
|  |      74dw2693734d      2022-11-17 22:14:53 +08:00 via iPhone 一切都向苹果看齐 | 
|  |      76moliniao      2022-11-17 22:34:57 +08:00 看一个事物,要看环境,对于现在的华为来说,降低开发者难度,普及推广自身生态最关键 就好像 google ,也是到了一定的程度才推出的 go 和 dart | 
|      77freshmanc      2022-11-17 23:09:26 +08:00 “基本 UI 描述:ArkTS 定义了各种装饰器、自定义组件、UI 描述机制,再配合 UI 开发框架中的 UI 内置组件、事件方法、属性方法等共同构成了 UI 开发的主体。” 为什么这种叫语言。。。不是 UI 框架的吗 | 
|      78huohei      2022-11-17 23:39:16 +08:00 via iPhone 我去,这不是我们 SwiftUI 吗,没想到居然被华为收购了🤣,还变成了 typescript ,怎么证明? | 
|      79mbooyn      2022-11-17 23:49:19 +08:00 via iPhone 借楼问一下,鸿蒙是不是抄的安卓? | 
|  |      80WOLFRAZOR      2022-11-17 23:51:24 +08:00 via Android 这不就是 Jetpack Compose 吗? | 
|  |      81BoringBB      2022-11-18 08:00:53 +08:00 @icatme 我们一般把 Debian 称为 Linux 发行版。Linux 只是一个内核,一个完整的操作系统除了内核外,还需要配套的外围软件。AOSP 也使用了 Linux 内核,从某种意义上来说也属于 Linux 发行版。 | 
|  |      82free9fw      2022-11-18 08:48:32 +08:00 始终是山寨,连开发语言也山寨 | 
|  |      83montaro2017      2022-11-18 09:03:22 +08:00 @silvernoo 我觉得这还不如 flutter | 
|  |      84litmxs      2022-11-18 09:30:21 +08:00 via Android 为什么自己的编程语言不用中文? tui 卖国公司 | 
|      85killeder      2022-11-18 09:31:13 +08:00 251 卖的东西都是骗 250 的 | 
|      86polo3584      2022-11-18 09:38:37 +08:00  2 用了半年的多的说句话,这个东西本来叫 ets ,是 ts 的超集,只是这次改名叫 arkTS ,没太多新东西,华为也没说是一种新语言啊。。。不还是 TS 么,亮点其实是 arkUI 的框架和编译器。不过这个帖子里真去实操过的估计不超过 10 个,全在沸腾。在我看来黑华为的和吹华为的都是同一类人。 | 
|  |      87silvernoo      2022-11-18 09:55:56 +08:00 @ruxuan1306 最近正在被 ts 摧残,比 flutter 的嵌套地狱更难受的是 ts 的函数回调地狱 | 
|  |      88pkwenda      2022-11-18 10:02:23 +08:00 华为赢麻了 | 
|  |      89Wanex      2022-11-18 15:02:33 +08:00 这也叫语言?那 jsx 也是语言? | 
|  |      90lisxour      2022-11-19 10:06:19 +08:00 @marcong95 我不知道你用没用过 TS ,但我日常 TS 开发,"Button() {}.onClick(() => {})"语法上就是很正常的 TS 或者说 JS 语法,"Button() {}"定义了一个 Button 方法,至于为什么还能调用"onClick"方法,直接给 prototype 加个"onClick"即可。所谓的"ArkTS 语言"也就是拥有一堆 typings 的框架。 | 
|  |      91marcong95      2022-11-21 09:38:09 +08:00 @lisxour #90 那如果我有两个 Button ,那 JS/TS 肯定不能让你定义两个 Button 函数吧,那如果改成 Button1 、Button2 JS Runtime 又怎么知道这是个 Button 呢。而且给哪个 prototype 加 onClick ,Function 吗,这么搞的话 Function 就会肿成一大坨东西。我思前想后,Button 大概率是一个工厂函数,{} 这个看着像是代码块的东西,应该会编译为类似于 Button()(builder => { builder.Text() }).onClick(() => {}) 这种感觉的东西。 我只是想说,黑华为的时候大可不必把 JS/TS 拉出来陪葬。。这东西可能技术含量不高,大概一个 babel 插件的事情,但是多少也能算个类似于 JSX 的 DSL 。 | 
|  |      92lisxour      2022-11-21 11:18:43 +08:00 @marcong95 具体是不是编译时做处理这个没深入了解,但是加`onClick`或者类型提示这些其实 ts 有很骚的高级类型提示,比如`https://github.com/ronami/HypeScript`,就基本可以做到这些程度(代码看起来确实挺诡异,但是自身语法没问题+高级 typings 是能确保写代码时的正确提示的),但如你所说的,最后也得走一遍编译器。鉴于现在各种各样花里胡哨的框架都有自己的后处理插件或者编译器,ArkTS 不能说是一门语言也是能理解的。 | 
|      93bunny189      2022-11-23 09:42:26 +08:00 flutter 既视感太强 | 
|  |      94makelove      2022-11-23 22:43:27 +08:00 过去瞄了一眼,感觉还行的样子。我最近几年对华为挺刮目相看的。 不过这公司不管做什么在这论坛一定就是楼上的场景 | 
|      95ranhuan      2023-03-17 11:34:38 +08:00  1 华为的 OS 和 language 的最近动向感觉是在做一个脱钩后也能达到世界顶级开发能力并且可以自行迭代的国产替代,对于自研等等不在注重,希望只是一个阶段性目标。 | 
|      96ranhuan      2023-03-17 11:39:00 +08:00 华为的产品起点还是基于现有国际开源产品 鸿蒙基于 AOSP 语言基于 TS 芯片基于 ARM IDE 基于 IDEA 不过华为吃的很透,基本上在起点位置可以做到和主干同样甚至更高质量的后续迭代。方向不能说错误,但在起点位置很容易思想混乱,多迭代几次走出自己的路就能统一思想。 | 
|  |      97dengxuejiu      2023-09-08 11:17:26 +08:00 吹就完事了 | 
|  |      99xu33      2024-04-08 17:00:52 +08:00 说是 TS 超集,但不支持的 TS 特性好像有几百个(滚动条滚了几秒都没滚完),貌似重新定义了“超集”? | 
|  |      100xu33      2024-04-08 17:01:27 +08:00 弄了一堆奇怪语法导致不能用 vscode 开发也是硬伤 |