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

一、部分支持instanceof运算符
规则:arkts-instanceof-ref-types
级别:错误
在TypeScript中,instanceof运算符的左操作数的类型必须为any类型、对象类型,或者它是类型参数,否则结果为false。在ArkTS中,instanceof运算符的左操作数的类型必须为引用类型(例如,对象、数组或者函数),否则会发生编译时错误。此外,在ArkTS中,instanceof运算符的左操作数不能是类型,必须是对象的实例。
二、不支持in运算符
规则:arkts-no-in
级别:错误
由于在ArkTS中,对象布局在编译时是已知的并且在运行时无法修改,因此,不支持in运算符。如果仍需检查某些类成员是否存在,使用instanceof代替。
TypeScript

class Person {
  name: string = ''
}
let p = new Person();

let b = 'name' in p; // true

ArkTS

class Person {
  name: string = ''
}
let p = new Person();

let b = p instanceof Person; // true,且属性name一定存在

相关约束
对象的属性名必须是合法的标识符
不支持Symbol() API
不支持通过索引访问字段
不支持delete运算符
仅允许在表达式中使用typeof运算符
限制使用标准库
三、不支持解构赋值
规则:arkts-no-destruct-assignment
级别:错误
ArkTS不支持解构赋值。可使用其他替代方法,例如,使用临时变量。
TypeScript

let [one, two] = [1, 2]; // 此处需要分号
[one, two] = [two, one];

let head, tail
[head, ...tail] = [1, 2, 3, 4];

ArkTS

let arr: number[] = [1, 2];
let one = arr[0];
let two = arr[1];

let tmp = one;
one = two;
two = tmp;

let data: Number[] = [1, 2, 3, 4];
let head = data[0];
let tail: Number[] = [];
for (let i = 1; i < data.length; ++i) {
  tail.push(data[i]);
}

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值