当前位置: 首页 > news >正文

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]);
}

ArkTS

let a: string[] = ['1.0', '2.0', '3.0'];
for (let i = 0; i < a.length; ++i) {console.log(a[i]);
}

二、不支持映射类型
规则:arkts-no-mapped-types
级别:错误
ArkTS不支持映射类型,使用其他语法来表示相同的语义。
TypeScript

type OptionsFlags<Type> = {[Property in keyof Type]: boolean
}

ArkTS

class C {n: number = 0s: string = ''
}class CFlags {n: boolean = falses: boolean = false
}

三、不支持with语句
规则:arkts-no-with
级别:错误
ArkTS不支持with语句,使用其他语法来表示相同的语义。
TypeScript

with (Math) { // 编译时错误, 但是仍能生成JavaScript代码let r: number = 42;let area: number = PI * r * r;
}

ArkTS

let r: number = 42;
let area: number = Math.PI * r * r;

四、限制throw语句中表达式的类型
规则:arkts-limited-throw
级别:错误
ArkTS只支持抛出Error类或其派生类的实例。禁止抛出其他类型(例如number或string)的数据。
TypeScript

throw 4;
throw '';
throw new Error();

ArkTS

throw new Error();

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

http://www.lryc.cn/news/428409.html

相关文章:

  • 两个系统之间跳转免密登录
  • SQL基础——MySQL的触发器、存储引擎、事务
  • 目标检测算法:对比YOLOv3、YOLOv5、YOLOv8
  • C# 属性(Property)
  • 3. 数据结构——栈的操作实现
  • EmguCV学习笔记 VB.Net 4.5 像素距离和连通区域
  • 使用spring boot开发与直接开发一个web项目的区别
  • Leetcode JAVA刷刷站(48)旋转图像
  • 编译型语言和解释型语言
  • TensorRT 和 PyTorch区别
  • iOS 17.6.1版本重发,修复高级数据保护错误
  • 【排序算法】八大排序(上)(c语言实现)(附源码)
  • Python版《超级玛丽+源码》-Python制作超级玛丽游戏
  • 互联网私有IP地址列表
  • 光伏项目管理软件为什么那么多光伏人在用?
  • 《AOP实战》— 自定义注解
  • 微前端架构下的单页应用实现策略
  • JWT(JSON Web Token)工作原理及特点
  • 【体检】程序人生之健康检查,全身体检与预防疫苗,五大传染病普筛,基因检测等
  • 汇编语言中的指令锁定:解锁高效并发编程
  • 《人工智能时代:金融投资决策的潜在系统性风险及防范策略》
  • MT7621+MT7915(MT7905)+MT7975 (W7621A6G-SDK)编译固件与升级固件方法
  • [php:\\filter]
  • Linux-环境变量
  • DISCUZ论坛中 “阅读权限10“这几个字的修改教程以及后台目录路径修改后的管理路径
  • springboot 整合spring-boot-starter-data-elasticsearch
  • Element UI中el-dialog作为子组件如何由父组件控制显示/隐藏~
  • 【vue讲解:es6导入导出语法、 vue-router简单使用、登录跳转案例、scoped的使用、elementui使用】
  • #beego的orm一直引入失败#
  • Vue插值:双大括号标签、v-text、v-html、v-bind 指令