<
Harmonyos学习笔记 Arkts arkui
>
上一篇

Harmonyos学习笔记 基础组件
下一篇

Harmonyos 中的 har、hap、hsp

HarmonyOS Next

ArkTS 语言

ArkTS 语言介绍 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/introduction-to-arkts-V5

sum() // 返回0 sum(1, 2, 3) // 返回6


- 函数类型,跟 Kotlin 类似但又不同

type trigFunc = (x: number) => number // 这是一个函数类型


- 函数重载(构造函数也可以),跟 Java 类似,但定义函数时有不同

function foo(x: number): void; /* 第一个函数定义 / function foo(x: string): void; / 第二个函数定义 / function foo(x: number | string): void { / 函数实现 */ }

foo(123); // OK,使用第一个定义 foo(‘aa’); // OK,使用第二个定义


- 对象字面量

class C { n: number = 0 s: string = ‘’ }

let c: C = {n: 42, s: ‘foo’}; // 可以代替new表达式 new C(42, 'foo')


- Record类型的对象字面量

/ 泛型Record<K, V>用于将类型(键类型)的属性映射到另一个类型(值类型)。 // 常用对象字面量来初始化该类型的值 let map: Record<string, number> = { ‘John’: 25, ‘Mary’: 21, }

map[‘John’]; // 25


- 泛型支持默认值 `class Base <T = SomeType> { }`

- 非空断言 `a!.value`,对比 Kotlin 是 `a!!.value`

- 空值合并运算符 `a ?? b`,对比 Kotlin 是 `a ?: b`

- 导出,可以使用关键字export导出顶层的声明。未导出的声明名称被视为私有名称,只能在声明该名称的模块中使用

export class Point { x: number = 0 y: number = 0 constructor(x: number, y: number) { this.x = x; this.y = y; } } export let Origin = new Point(0, 0); export function Distance(p1: Point, p2: Point): number { return Math.sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y)); }


- 导入,导入声明用于导入从其他模块导出的实体,并在当前模块中提供其绑定

// 太多了,看文档吧 ```

ArkUI

MVVM 应用示例 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-mvvm-V5#mvvm%E5%BA%94%E7%94%A8%E7%A4%BA%E4%BE%8B

组件

Top
Foot