使用继承而非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 {}
不支持this类型
规则:arkts-no-typing-with-this
级别:错误
ArkTS不支持this类型,改用显式具体类型。
TypeScript
interface ListItem {
getHead(): this
}
class C {
n: number = 0
m(c: this) {
// ...
}
}
ArkTS
interface ListItem {
getHead(): ListItem
}
class C {
n: number = 0
m(c: C) {
// ...
}
}
不支持条件类型
规则:arkts-no-conditional-types
级别:错误
ArkTS不支持条件类型别名,引入带显式约束的新类型,或使用Object重写逻辑。 不支持infer关键字。
TypeScript
type X<T> = T extends number ? T: never
type Y<T> = T extends Array<infer Item> ? Item: never
ArkTS
// 在类型别名中提供显式约束
type X1<T extends number> = T
// 用Object重写,类型控制较少,需要更多的类型检查以确保安全
type X2<T> = Object
// Item必须作为泛型参数使用,并能正确实例化
type YI<Item, T extends Array<Item>> = Item
不支持在constructor中声明字段
规则:arkts-no-ctor-prop-decls
级别:错误
ArkTS不支持在constructor中声明类字段。在class中声明这些字段。
TypeScript
class Person {
constructor(
protected ssn: string,
private firstName: string,
private lastName: string
) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
}
getFullName(): string {
return this.firstName + ' ' + this.lastName;
}
}
ArkTS
class Person {
protected ssn: string
private firstName: string
private lastName: string
constructor(ssn: string, firstName: string, lastName: string) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
}
getFullName(): string {
return this.firstName + ' ' + this.lastName;
}
}
接口中不支持构造签名
规则:arkts-no-ctor-signatures-iface
级别:错误
ArkTS不支持在接口中使用构造签名。改用函数或者方法。
TypeScript
interface I {
new (s: string): I
}
function fn(i: I) {
return new i('hello');
}
ArkTS
interface I {
create(s: string): I
}
function fn(i: I) {
return i.create('hello');
}
相关约束
使用class而非具有构造签名的类型
那么要想成为一名鸿蒙高级开发,以上知识点是必须要掌握的,除此之外,还需要掌握一些鸿蒙应用开发相关的一些技术,需要我们共同去探索。
为了节省大家一些查找的时间,这边联合几位行业大佬,为大家准备了一份《OpenHarmony4.0&Next》的学习导图,从入门到进阶再到南北向开发实战的一整套完整体系,想要学习了解更多鸿蒙开发的相关知识可以借鉴:《https://docs.qq.com/doc/DZVVZR2lzcnJZSFlO》
除了上面整理的思维导图以外,这里还特别整理的一份《鸿蒙 (Harmony OS)开发学习手册》给大家进行参考学习:
一、入门必看
-
应用开发导读(ArkTS)
-
……
二、HarmonyOS 概念 -
系统定义
-
技术架构
-
技术特性
-
系统安全
5........
三、如何快速入门?《https://docs.qq.com/doc/DZVVZR2lzcnJZSFlO》
-
基本概念
-
构建第一个ArkTS应用
-
构建第一个JS应用
-
……
四、开发基础知识 -
应用基础知识
-
配置文件
-
应用数据管理
-
应用安全管理
-
应用隐私保护
-
三方应用调用管控机制
-
资源分类与访问
-
学习ArkTS语言
-
……
五、基于ArkTS 开发 -
Ability开发
-
UI开发
-
公共事件与通知
-
窗口管理
-
媒体
-
安全
-
网络与链接
-
电话服务
-
数据管理
-
后台任务(Background Task)管理
-
设备管理
-
设备使用信息统计
-
DFX
-
国际化开发
-
折叠屏系列
-
……
更多了解更多鸿蒙开发的相关知识可以参考:《https://docs.qq.com/doc/DZVVZR2lzcnJZSFlO》