一、不支持以#開頭的私有字段
規則:arkts-no-private-identifiers
級別:錯誤
ArkTS不支持使用#符號開頭聲明的私有字段。改用private關鍵字。
TypeScript
class C {#foo: number = 42
}
ArkTS
class C {private foo: number = 42
}
二、類型、命名空間的命名必須唯一
規則:arkts-unique-names
級別:錯誤
類型(類、接口、枚舉)、命名空間的命名必須唯一,且與其他名稱(例如:變量名、函數名)不同。
TypeScript
let X: string
type X = number[] // 類型的別名與變量同名
ArkTS
let X: string
type T = number[] // 為避免名稱沖突,此處不允許使用X
三、使用let而非var
規則:arkts-no-var
級別:錯誤
let關鍵字可以在塊級作用域中聲明變量,幫助程序員避免錯誤。因此,ArkTS不支持var,請使用let聲明變量。
TypeScript
function f(shouldInitialize: boolean) {if (shouldInitialize) {var x = 'b';}return x;
}console.log(f(true)); // b
console.log(f(false)); // undefinedlet upperLet = 0;
{var scopedVar = 0;let scopedLet = 0;upperLet = 5;
}
scopedVar = 5; // 可見
scopedLet = 5; // 編譯時錯誤
ArkTS
function f(shouldInitialize: boolean): string {let x: string = 'a';if (shouldInitialize) {x = 'b';}return x;
}console.log(f(true)); // b
console.log(f(false)); // alet upperLet = 0;
let scopedVar = 0;
{let scopedLet = 0;upperLet = 5;
}
scopedVar = 5;
scopedLet = 5; //編譯時錯誤
本文根據HarmonyOS NEXT Developer Beta1官方公開的開發文檔整理而成。