OpenHarmony—仅允许在表达式中使用typeof运算符

规则:arkts-no-type-query

级别错误

ArkTS仅支持在表达式中使用typeof运算符,不允许使用typeof作为类型。

TypeScript

let n1 = 42;
let s1 = 'foo';
console.log(typeof n1); // 'number'
console.log(typeof s1); // 'string'
let n2: typeof n1
let s2: typeof s1

ArkTS

let n1 = 42;
let s1 = 'foo';
console.log(typeof n1); // 'number'
console.log(typeof s1); // 'string'
let n2: number
let s2: string

相关约束

  • 对象的属性名必须是合法的标识符
  • 不支持Symbol() API
  • 不支持通过索引访问字段
  • 不支持delete运算符
  • 不支持in运算符
  • 限制使用标准库

部分支持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运算符
  • 限制使用标准库

那么要想成为一名鸿蒙高级开发,以上知识点是必须要掌握的,除此之外,还需要掌握一些鸿蒙应用开发相关的一些技术,需要我们共同去探索。

为了节省大家一些查找的时间,这边联合几位行业大佬,为大家准备了一份《OpenHarmony4.0&Next》的学习导图,从入门到进阶再到南北向开发实战的一整套完整体系,想要学习了解更多鸿蒙开发的相关知识可以借鉴:《鸿蒙4.0源码开发架构分析pdf》
在这里插入图片描述
除了上面整理的思维导图以外,这里还特别整理的一份《鸿蒙 (Harmony OS)开发学习手册》给大家进行参考学习:

一、入门必看

  1. 应用开发导读(ArkTS)

  2. ……在这里插入图片描述

二、HarmonyOS 概念

1.系统定义

2.技术架构

3.技术特性

4.系统安全

5…在这里插入图片描述
三、如何快速入门?《一小时快速认识HarmonyOS》

  1. 基本概念

  2. 构建第一个ArkTS应用

  3. 构建第一个JS应用

  4. ……在这里插入图片描述

四、开发基础知识

1.应用基础知识

2.配置文件

3.应用数据管理

4.应用安全管理

5.应用隐私保护

6.三方应用调用管控机制

7.资源分类与访问

8.学习ArkTS语言

9.……在这里插入图片描述
五、基于ArkTS 开发

1.Ability开发

2.UI开发

3.公共事件与通知

4.窗口管理

5.媒体

6.安全

7.网络与链接

8.电话服务

9.数据管理

10.后台任务(Background Task)管理

11.设备管理

12.设备使用信息统计

13.DFX

14.国际化开发

15.折叠屏系列

16.……在这里插入图片描述
更多了解更多鸿蒙开发的相关知识可以参考:《鸿蒙HarmonyOS分布式项目实战》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nuget包缓存存放位置迁移

一、背景 默认情况下,NuGet会将项目中使用的包缓存到C盘,随着项目开发积累nuget包越来越多,这会逐渐挤占大量C盘空间,所以我们可以将nuget包缓存位置指定到其他盘中存放。 二、软件环境 win10、vs2022 三、查看当前缓存存放位…

亚信安慧AntDB打造开放创新的数据库生态

在当今信息化快速发展的时代背景下,亚信安慧AntDB作为一种新兴的DBMS,以其核心优势引起了行业内的广泛关注。它基于具有广泛全球影响力和繁荣社区支持的PostgreSQL(PG)内核,继承了PG的开放性与生态活力,同时在性能和稳定性方面进行…

【C++】引用、内联函数、auto关键字等

前言:在前面我们讲解了C入门基础的一些学习例如命名空间、缺省参数、函数重载等。今天我们将进一步的学习,跟着博主的脚步再次往前迈一步吧。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量C学习…

10 Java表达式引擎Aviator

文章目录 一、Aviator介绍二、Aviator使用1. pom.xml引入依赖2. 开发代码 三、Aviator语法1. 运算符优先级2. 常量和变量3. 内置函数 一、Aviator介绍 Aviator是一个高性能、轻量级的 java 语言实现的表达式求值引擎, 主要用于各种表达式的动态求值。 Aviator非常小&#xff0…

【极数系列】Flink环境搭建Docker版本(04)

文章目录 引言01 Linux安装Docker1.安装yum-utils软件包2.安装docker3.启动docker4.设置docker自启动5.配置Docker使用systemd作为默认Cgroup驱动6.重启docker 02 docker部署Flink1.18版本1.拉取最新镜像2.检查镜像3.编写dockerFile文件4.执行dockerFile5.检查flink是否启动成功…

万字长文扫盲JUC基础

文章源码地址 文章目录 JUC概述什么是JUC线程和进程的概念进程和线程线程的状态wait和sleep并发和并行管程monitor用户线程与守护线程 Lock接口复习Synchronizedsyschronized卖票案例多线程编程步骤 什么是Lock接口Lock接口的介绍Lock实现可重入锁实现卖票案例 线程间通信案例…

PyTorch的nn.Module类的详细介绍

在PyTorch中,nn.Module 类是构建神经网络模型的基础类,所有自定义的层、模块或整个神经网络架构都需要继承自这个类。nn.Module 类提供了一系列属性和方法用于管理网络的结构和训练过程中的计算。 1. PyTorch中nn.Module基类的定义 在PyTorch中&#xf…

【洛谷 P1481】魔族密码 题解(字符串+字典树)

魔族密码 题目背景 风之子刚走进他的考场,就…… 花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花) 风之子:我呕……(杀死人的眼神&#xf…

go语言基础strconv类型转换

strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi()、Itoa()、parse系列、format系列、append系列。 string与int类型转换 这一组函数是我们平时编程中用的最多的。 Atoi() Atoi()函数用于将字符串类型的整数转换为int类型…

从云计算到物联网:虚拟化技术的演变与嵌入式系统的融合

文章目录 一、硬件性能提升:摩尔定律与嵌入式虚拟化二、CPU多核技术:为嵌入式虚拟化提供支持三、业务负载整合:嵌入式虚拟化的核心需求四、降低硬件成本:虚拟化技术的经济效益五、软件重用与移植:虚拟化技术的优势六、…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏4(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言源码制作系统简单绘制制作系统面板UI斧头素材代码控制工具栏操作制作石斧 完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇…

C#用DateTime.Now.ToString方法将日期格式化为指定格式

目录 一、DateTime.Now.ToString方法 二、实例 一、DateTime.Now.ToString方法 调用DateTime对象的ToString方法可以将当前DateTime对象的值转换为其等效的字符串表示形式,而且ToString方法提供了重载,可以在ToString方法中添加不同的参数,…

JAVA编程语言单词汇总

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Ora…

Android 基础技术——Bitmap

笔者希望做一个系列,整理 Android 基础技术,本章是关于 Bitmap Bitmap 内存如何计算 占用内存 宽 * 缩放比例 * 高 * 缩放比例 * 每个像素所占字节 缩放比例 设备dpi/图片所在目录的dpi Bitmap加载优化?不改变图片质量的情况下怎么优化&am…

【一竞技DOTA2】Blacklist战队官宣租借Palos参加ESL伯明翰预选赛

1、Blacklist战队官宣租借Palos参加ESL伯明翰站最终预选赛。Palos自2022年2月份以来一直效力于同为东南亚赛区的Execration战队,这次租借是替补前不久刚刚离队的Raven。 2、俄罗斯未来运动会最近官宣nouns战队因故退出。另外还有Neon、Nigma,Entity&…

vue 和 react技术选型

相同点: 数据驱动页面,提供响应式的试图组件都有virtual DOM,组件化的开发,通过props参数进行父子之间组件传递数据,都实现了webComponents规范数据流动单向,都支持服务器的渲染SSR都有支持native的方法,r…

【Linux】第三十九站:可重入函数、volatile、SIGCHLD信号

文章目录 一、可重入函数二、volatile三、SIGCHLD信号 一、可重入函数 如下图所示,当我们进行链表的头插的时候,我们刚刚执行完第一条语句的时候,突然收到一个信号,然后我们这个信号的自定义捕捉方法中,正好还有一个头…

Compose | UI组件(九) | Column,Row - 线性布局

文章目录 前言Column 的含义Column 的使用给 Column 加边框Column 使用 verticalArrangement 定位子项位置Column 使用 horizontalAlignment 定位子组件位置Column 设置了大小,可使用Modifier.align修饰符设置子组件对齐方式 Row 的含义Row 的使用 总结 前言 传统的…

“值得一试的六个浏览器扩展推荐|让你的上网更加便捷和有趣!”

iTab新标签页(免费ChatGPT) iTab是新一代组件式标签页的首创者,简洁美观高效无广,是您打造个人学习工作台的浏览器必备插件。 详情请见: iTab新标签页(免费ChatGPT) - Microsoft Edge Addons AdGuard 广告拦截器 AdGuard 广告拦截器可有效的…

vueRouter中scrollBehavior实现滚动固定位置

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。 注意: 这个功能只在 HTML5 h…