一、仅支持一个静态块
规则:arkts-no-multiple-static-blocks
级别:错误
ArkTS不允许类中有多个静态块,如果存在多个静态块语句,请合并到一个静态块中。
TypeScript
class C {
static s: string
static {
C.s = 'aa'
}
static {
C.s = C.s + 'bb'
}
}
ArkTS
class C {
static s: string
static {
C.s = 'aa'
C.s = C.s + 'bb'
}
}
说明
当前不支持静态块的语法。支持该语法后,在.ets文件中使用静态块须遵循本约束。
二、不支持index signature
规则:arkts-no-indexed-signatures
级别:错误
ArkTS不允许index signature,改用数组。
TypeScript
// 带index signature的接口:
interface StringArray {
[index: number]: string
}
function getStringArray(): StringArray {
return ['a', 'b', 'c'];
}
const myArray: StringArray = getStringArray();
const secondItem = myArray[1];
ArkTS
class X {
public f: string[] = []
}
let myArray: X = new X();
const secondItem = myArray.f[1];
三、使用继承而非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 {}
本文根据HarmonyOS NEXT Developer Beta1官方公开的开发文档整理而成。