鸿蒙开发之ArkTS常量与变量的命名规则
在鸿蒙开发(HarmonyOS)中使用 ArkTS(TypeScript 的超集)时,常量与变量的命名规则需遵循 TypeScript 的通用规范,同时结合鸿蒙开发的最佳实践。以下是详细的命名规则和示例:
1. 变量命名规则
变量用于存储可变的数据,命名应清晰表达其用途。
基本规则
- 驼峰命名法(camelCase):首字母小写,后续单词首字母大写。
let userName: string = "Alice";
let isLoggedIn: boolean = true;
- 避免缩写:除非是广泛认可的缩写(如 id、temp)
// 不推荐
let usrNm: string = "Bob";
// 推荐
let userName: string = "Bob";
- 语义化:名称应直接反映用途。
// 不推荐
let a: number = 10;
// 推荐
let itemCount: number = 10;
类型标注
- 显式声明类型(推荐):
let age: number = 25;
let message: string = "Hello";
特殊场景
- 循环变量:常用 i、j、k(但建议更语义化)。
for (let i = 0; i < 10; i++) { ... }
// 或
for (let index = 0; index < 10; index++) { ... }
2. 常量命名规则
常量用于存储不可变的数据,命名应体现其不可变性。
基本规则
- 全大写 + 下划线分隔(UPPER_SNAKE_CASE):
const MAX_SIZE: number = 100;
const API_URL: string = "https://example.com/api";
- 不可重新赋值:使用 const 声明。
// 错误示例(常量不应重新赋值)
const PI = 3.14;
PI = 3.1415; // 报错
枚举常量
- 使用 enum 或联合类型(推荐联合类型,更轻量):
// 使用 enum(传统方式)
enum Color { RED, GREEN, BLUE }
let currentColor: Color = Color.RED;// 使用联合类型(ArkTS 推荐)
type Color = "RED" | "GREEN" | "BLUE";
let currentColor: Color = "RED";
3. 鸿蒙开发中的特殊约定
资源引用常量
- 引用资源文件(如字符串、图片)时,建议使用前缀:
// 字符串资源
const STR_APP_NAME: string = $r('app.string.app_name');// 图片资源
const IMG_LOGO: Resource = $r('app.media.logo');
UI 组件属性
- 组件属性命名应简洁且语义化:
@Entry
@Component
struct MyComponent {// 变量命名@State title: string = "Welcome";@State isVisible: boolean = true;build() {Column() {Text(this.title) // 直接使用变量.visibility(this.isVisible ? Visibility.Visible : Visibility.Hidden)}}
}
4. 命名禁忌
- 避免保留字:如 let、const、class 等。
- 避免单字符:除临时变量(如循环中的 i)。
- 避免匈牙利命名法:如 strName、iCount(ArkTS 不推荐)。
- 避免中文或特殊字符:
// 不推荐
let 用户名: string = "Alice";
let $temp: number = 10;
示例代码
// 常量
const APP_VERSION: string = "1.0.0";
const MAX_RETRY_COUNT: number = 3;// 变量
let userInput: string = "";
let retryCount: number = 0;// 函数
function login(username: string, password: string): boolean {const IS_VALID_USER: boolean = checkCredentials(username, password);if (IS_VALID_USER) {userInput = "Login successful";return true;}retryCount++;return false;
}