HarmonyOS 鸿蒙Next原生应用开发-从TS到ArkTS的适配规则

发布于 1周前 作者 wuwangju 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next原生应用开发-从TS到ArkTS的适配规则

一、仅支持一个静态块

规则:arkts-no-multiple-static-blocks

级别:错误

ArkTS不允许类中有多个静态块,如果存在多个静态块语句,请合并到一个静态块中。

TypeScript

class C {
static s: string

static { C.s = ‘aa’ } static { C.s = C.s + ‘bb’ } }

ArkTS

class C {
static s: string

static { C.s = ‘aa’ C.s = C.s + ‘bb’ } }

说明

当前不支持静态块的语法。支持该语法后,在.ets文件中使用静态块须遵循本约束。

二、不支持index signature

规则:arkts-no-indexed-signatures

级别:错误

ArkTS不允许index signature,改用数组。

TypeScript

// 带index signature的接口:
interface StringArray {
[index: number]: string
}

function getStringArray(): StringArray { return [‘a’, ‘b’, ‘c’]; }

const myArray: StringArray = getStringArray(); const secondItem = myArray[1];

ArkTS

class X {
public f: string[] = []
}

let myArray: X = new X(); const secondItem = myArray.f[1];

三、使用继承而非intersection type

规则:arkts-no-intersection-types

级别:错误

目前ArkTS不支持intersection type,可以使用继承作为替代方案。

TypeScript

interface Identity {
id: number
name: string
}

interface Contact { email: string phoneNumber: string }

type Employee = Identity & Contact

ArkTS

interface Identity {
id: number
name: string
}

interface Contact { email: string phoneNumber: string }

interface Employee extends Identity, Contact {}

本文根据HarmonyOS NEXT Developer Beta1官方公开的开发文档整理而成。


更多关于HarmonyOS 鸿蒙Next原生应用开发-从TS到ArkTS的适配规则的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next原生应用开发-从TS到ArkTS的适配规则的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS 鸿蒙Next原生应用开发从TS到ArkTS的适配规则,以下是一些关键点:

  1. 属性名规则:在ArkTS中,对象的属性名需要是合法的标识符。通常不支持使用数字或字符串(除字符串字面量和枚举中的字符串值外)作为属性名。需通过属性名访问类的属性,通过数值索引访问数组元素。
  2. Symbol API:ArkTS不支持Symbol() API,因为对象布局在编译时就确定了,不能在运行时更改。但支持Symbol.iterator。
  3. 其他限制:不支持通过索引访问字段、不支持delete运算符、仅允许在表达式中使用typeof运算符、不支持in运算符,同时限制使用标准库。

这些适配规则有助于开发者在从TypeScript迁移到ArkTS时避免常见的错误,确保代码的正确性和高效性。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部