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

发布于 1周前 作者 caililin 来自 鸿蒙OS

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

一、不支持for … in

规则:arkts-no-for-in

级别:错误

由于在ArkTS中,对象布局在编译时是确定的、并且不能在运行时被改变,所以不支持使用for … in迭代一个对象的属性。对于数组来说,可以使用常规的for循环。

TypeScript

let a: string[] = [‘1.0’, ‘2.0’, ‘3.0’];
for (let i in a) {
console.log(a[i]);
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

ArkTS

let a: string[] = [‘1.0’, ‘2.0’, ‘3.0’];
for (let i = 0; i < a.length; ++i) {
console.log(a[i]);
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

二、不支持映射类型

规则:arkts-no-mapped-types

级别:错误

ArkTS不支持映射类型,使用其他语法来表示相同的语义。

TypeScript

type OptionsFlags<Type> = {
[Property in keyof Type]: boolean
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

ArkTS

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

class CFlags { n: boolean = false s: boolean = false }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

三、不支持with语句

规则:arkts-no-with

级别:错误

ArkTS不支持with语句,使用其他语法来表示相同的语义。

TypeScript

with (Math) { // 编译时错误, 但是仍能生成JavaScript代码
let r: number = 42;
let area: number = PI * r * r;
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

ArkTS

let r: number = 42;
let area: number = Math.PI * r * r;<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

四、限制throw语句中表达式的类型

规则:arkts-limited-throw

级别:错误

ArkTS只支持抛出Error类或其派生类的实例。禁止抛出其他类型(例如number或string)的数据。

TypeScript

throw 4;
throw ‘’;
throw new Error();<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

ArkTS

throw new Error();<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

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



关于HarmonyOS 鸿蒙Next原生应用开发-从TS到ArkTS的适配规则(十五)的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

回到顶部